Merge branch 'oh/fix-config-default-user-name-section' into maint-2.3
authorJunio C Hamano <gitster@pobox.com>
Mon, 11 May 2015 21:33:59 +0000 (14:33 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 May 2015 21:33:59 +0000 (14:33 -0700)
The default $HOME/.gitconfig file created upon "git config --global"
that edits it had incorrectly spelled user.name and user.email
entries in it.

* oh/fix-config-default-user-name-section:
config: fix settings in default_user_config template

1  2 
builtin/config.c
diff --combined builtin/config.c
index 15a7bea936d667042cef27f83c86a863df2caa8f,05cf6915541600781b2078b3dbf2e620f1d6c5ed..73dc2f1024ad986a2421b0c6e9c5845574437d41
@@@ -69,8 -69,8 +69,8 @@@ static struct option builtin_config_opt
        OPT_BIT(0, "remove-section", &actions, N_("remove a section: name"), ACTION_REMOVE_SECTION),
        OPT_BIT('l', "list", &actions, N_("list all"), ACTION_LIST),
        OPT_BIT('e', "edit", &actions, N_("open an editor"), ACTION_EDIT),
 -      OPT_STRING(0, "get-color", &get_color_slot, N_("slot"), N_("find the color configured: [default]")),
 -      OPT_STRING(0, "get-colorbool", &get_colorbool_slot, N_("slot"), N_("find the color setting: [stdout-is-tty]")),
 +      OPT_BIT(0, "get-color", &actions, N_("find the color configured: slot [default]"), ACTION_GET_COLOR),
 +      OPT_BIT(0, "get-colorbool", &actions, N_("find the color setting: slot [stdout-is-tty]"), ACTION_GET_COLORBOOL),
        OPT_GROUP(N_("Type")),
        OPT_BIT(0, "bool", &types, N_("value is \"true\" or \"false\""), TYPE_BOOL),
        OPT_BIT(0, "int", &types, N_("value is decimal number"), TYPE_INT),
@@@ -296,25 -296,21 +296,25 @@@ static int git_get_color_config(const c
        if (!strcmp(var, get_color_slot)) {
                if (!value)
                        config_error_nonbool(var);
 -              color_parse(value, var, parsed_color);
 +              if (color_parse(value, parsed_color) < 0)
 +                      return -1;
                get_color_found = 1;
        }
        return 0;
  }
  
 -static void get_color(const char *def_color)
 +static void get_color(const char *var, const char *def_color)
  {
 +      get_color_slot = var;
        get_color_found = 0;
        parsed_color[0] = '\0';
        git_config_with_options(git_get_color_config, NULL,
                                &given_config_source, respect_includes);
  
 -      if (!get_color_found && def_color)
 -              color_parse(def_color, "command line", parsed_color);
 +      if (!get_color_found && def_color) {
 +              if (color_parse(def_color, parsed_color) < 0)
 +                      die(_("unable to parse default color value"));
 +      }
  
        fputs(parsed_color, stdout);
  }
@@@ -334,9 -330,8 +334,9 @@@ static int git_get_colorbool_config(con
        return 0;
  }
  
 -static int get_colorbool(int print)
 +static int get_colorbool(const char *var, int print)
  {
 +      get_colorbool_slot = var;
        get_colorbool_found = -1;
        get_diff_color_found = -1;
        get_color_ui_found = -1;
@@@ -400,6 -395,19 +400,6 @@@ static int urlmatch_collect_fn(const ch
        return 0;
  }
  
 -static char *dup_downcase(const char *string)
 -{
 -      char *result;
 -      size_t len, i;
 -
 -      len = strlen(string);
 -      result = xmalloc(len + 1);
 -      for (i = 0; i < len; i++)
 -              result[i] = tolower(string[i]);
 -      result[i] = '\0';
 -      return result;
 -}
 -
  static int get_urlmatch(const char *var, const char *url)
  {
        char *section_tail;
        if (!url_normalize(url, &config.url))
                die("%s", config.url.err);
  
 -      config.section = dup_downcase(var);
 +      config.section = xstrdup_tolower(var);
        section_tail = strchr(config.section, '.');
        if (section_tail) {
                *section_tail = '\0';
@@@ -455,9 -463,9 +455,9 @@@ static char *default_user_config(void
        struct strbuf buf = STRBUF_INIT;
        strbuf_addf(&buf,
                    _("# This is Git's per-user configuration file.\n"
-                     "[core]\n"
+                     "[user]\n"
                      "# Please adapt and uncomment the following lines:\n"
-                     "#        user = %s\n"
+                     "#        name = %s\n"
                      "#        email = %s\n"),
                    ident_default_name(),
                    ident_default_email());
@@@ -534,7 -542,12 +534,7 @@@ int cmd_config(int argc, const char **a
                usage_with_options(builtin_config_usage, builtin_config_options);
        }
  
 -      if (get_color_slot)
 -          actions |= ACTION_GET_COLOR;
 -      if (get_colorbool_slot)
 -          actions |= ACTION_GET_COLORBOOL;
 -
 -      if ((get_color_slot || get_colorbool_slot) && types) {
 +      if ((actions & (ACTION_GET_COLOR|ACTION_GET_COLORBOOL)) && types) {
                error("--get-color and variable type are incoherent");
                usage_with_options(builtin_config_usage, builtin_config_options);
        }
                }
        }
        else if (actions == ACTION_EDIT) {
 -              const char *config_file = given_config_source.file ?
 -                      given_config_source.file : git_path("config");
 +              char *config_file;
 +
                check_argc(argc, 0, 0);
                if (!given_config_source.file && nongit)
                        die("not in a git directory");
                if (given_config_source.blob)
                        die("editing blobs is not supported");
                git_config(git_default_config, NULL);
 +              config_file = xstrdup(given_config_source.file ?
 +                                    given_config_source.file : git_path("config"));
                if (use_global_config) {
                        int fd = open(config_file, O_CREAT | O_EXCL | O_WRONLY, 0666);
                        if (fd) {
                                die_errno(_("cannot create configuration file %s"), config_file);
                }
                launch_editor(config_file, NULL, NULL);
 +              free(config_file);
        }
        else if (actions == ACTION_SET) {
                int ret;
                check_argc(argc, 2, 2);
                value = normalize_value(argv[0], argv[1]);
                return git_config_set_multivar_in_file(given_config_source.file,
 -                                                     argv[0], value, "^$", 0);
 +                                                     argv[0], value,
 +                                                     CONFIG_REGEX_NONE, 0);
        }
        else if (actions == ACTION_REPLACE_ALL) {
                check_write();
                        die("No such section!");
        }
        else if (actions == ACTION_GET_COLOR) {
 -              get_color(argv[0]);
 +              check_argc(argc, 1, 2);
 +              get_color(argv[0], argv[1]);
        }
        else if (actions == ACTION_GET_COLORBOOL) {
 -              if (argc == 1)
 -                      color_stdout_is_tty = git_config_bool("command line", argv[0]);
 -              return get_colorbool(argc != 0);
 +              check_argc(argc, 1, 2);
 +              if (argc == 2)
 +                      color_stdout_is_tty = git_config_bool("command line", argv[1]);
 +              return get_colorbool(argv[0], argc == 2);
        }
  
        return 0;