From: Junio C Hamano Date: Sun, 20 Apr 2008 04:09:54 +0000 (-0700) Subject: Merge branch 'mk/color' X-Git-Tag: v1.5.6-rc0~140 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/dc46fa36b8dc407512fa41062caf57082a22907a?ds=inline;hp=-c Merge branch 'mk/color' * mk/color: Use color.ui variable in scripts too --- dc46fa36b8dc407512fa41062caf57082a22907a diff --combined builtin-config.c index 10447a704f,eccb7e7764..8ee01bdecd --- a/builtin-config.c +++ b/builtin-config.c @@@ -3,7 -3,7 +3,7 @@@ #include "color.h" static const char git_config_set_usage[] = -"git-config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty]"; +"git-config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int | --bool-or-int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty]"; static char *key; static regex_t *key_regexp; @@@ -16,7 -16,7 +16,7 @@@ static int seen static char delim = '='; static char key_delim = ' '; static char term = '\n'; -static enum { T_RAW, T_INT, T_BOOL } type = T_RAW; +static enum { T_RAW, T_INT, T_BOOL, T_BOOL_OR_INT } type = T_RAW; static int show_all_config(const char *key_, const char *value_) { @@@ -53,14 -53,6 +53,14 @@@ static int show_config(const char* key_ sprintf(value, "%d", git_config_int(key_, value_?value_:"")); else if (type == T_BOOL) vptr = git_config_bool(key_, value_) ? "true" : "false"; + else if (type == T_BOOL_OR_INT) { + int is_bool, v; + v = git_config_bool_or_int(key_, value_, &is_bool); + if (is_bool) + vptr = v ? "true" : "false"; + else + sprintf(value, "%d", v); + } else vptr = value_?value_:""; seen++; @@@ -165,14 -157,6 +165,14 @@@ char *normalize_value(const char *key, else if (type == T_BOOL) sprintf(normalized, "%s", git_config_bool(key, value) ? "true" : "false"); + else if (type == T_BOOL_OR_INT) { + int is_bool, v; + v = git_config_bool_or_int(key, value, &is_bool); + if (!is_bool) + sprintf(normalized, "%d", v); + else + sprintf(normalized, "%s", v ? "true" : "false"); + } } return normalized; @@@ -240,6 -224,10 +240,10 @@@ static int git_get_colorbool_config(con get_diff_color_found = git_config_colorbool(var, value, stdout_is_tty); } + if (!strcmp(var, "color.ui")) { + git_use_color_default = git_config_colorbool(var, value, stdout_is_tty); + return 0; + } return 0; } @@@ -267,7 -255,7 +271,7 @@@ static int get_colorbool(int argc, cons if (!strcmp(get_color_slot, "color.diff")) get_colorbool_found = get_diff_color_found; if (get_colorbool_found < 0) - get_colorbool_found = 0; + get_colorbool_found = git_use_color_default; } if (argc == 1) { @@@ -289,8 -277,6 +293,8 @@@ int cmd_config(int argc, const char **a type = T_INT; else if (!strcmp(argv[1], "--bool")) type = T_BOOL; + else if (!strcmp(argv[1], "--bool-or-int")) + type = T_BOOL_OR_INT; else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l")) { if (argc != 2) usage(git_config_set_usage);