Jeff King <peff@xxxxxxxx> writes: > [Eric Wong cc'd because of git-svn relevance] > > On Wed, Dec 05, 2007 at 06:05:04PM -0800, Junio C Hamano wrote: > >> This adds an option to help scripts find out color settings from >> the configuration file. >> >> git config --get-colorbool color.diff >> >> inspects color.diff variable, and exits with status 0 (i.e. success) if >> color is to be used. It exits with status 1 otherwise. > > There is no way to differentiate between "do not use color" and "no > value found". This makes it impossible to use this to implement the > required "try color.diff, fallback to diff.color" behavior. > > We could simply make it > > git config --get-colorbool diff > > which would check both (and when diff.color support is finally dropped, > just remove it from there). I thought about this a bit and thought that it would probably be a good workaround to teach "--get-colorbool that diff.color is a deprecated synonym to color.diff, like this. -- >8 -- config --get-colorbool: diff.color is a deprecated synonym to color.diff The applications can ask for color.diff but the configuration of old timer users can still instruct it to use color with diff.color this way. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- builtin-config.c | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) diff --git a/builtin-config.c b/builtin-config.c index d10b03f..e4a12e3 100644 --- a/builtin-config.c +++ b/builtin-config.c @@ -210,11 +210,17 @@ static int get_color(int argc, const char **argv) static int stdout_is_tty; static int get_colorbool_found; +static int get_diff_color_found; static int git_get_colorbool_config(const char *var, const char *value) { - if (!strcmp(var, get_color_slot)) + if (!strcmp(var, get_color_slot)) { get_colorbool_found = git_config_colorbool(var, value, stdout_is_tty); + } + if (!strcmp(var, "diff.color")) { + get_diff_color_found = + git_config_colorbool(var, value, stdout_is_tty); + } return 0; } @@ -233,10 +239,18 @@ static int get_colorbool(int argc, const char **argv) stdout_is_tty = isatty(1); else usage(git_config_set_usage); - get_colorbool_found = 0; + get_colorbool_found = -1; + get_diff_color_found = -1; get_color_slot = argv[0]; git_config(git_get_colorbool_config); + if (get_colorbool_found < 0) { + if (!strcmp(get_color_slot, "color.diff")) + get_colorbool_found = get_diff_color_found; + if (get_colorbool_found < 0) + get_colorbool_found = 0; + } + if (argc == 1) { return get_colorbool_found ? 0 : 1; } else { - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html