diff options
author | Jeff King <peff@peff.net> | 2011-08-17 22:05:35 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-08-19 15:51:38 -0700 |
commit | c9bfb953489e559d513c1627150aa16f8d42d6c5 (patch) | |
tree | 2c12de73bcf6ecdb5f2c28aff6cbb3aba91f182a /color.c | |
parent | 3e1dd17a8958cc5fe47a7ca01c9da8f6fae9cb0b (diff) | |
download | git-c9bfb953489e559d513c1627150aa16f8d42d6c5.tar.gz |
want_color: automatically fallback to color.ui
All of the "do we want color" flags default to -1 to
indicate that we don't have any color configured. This value
is handled in one of two ways:
1. In porcelain, we check early on whether the value is
still -1 after reading the config, and set it to the
value of color.ui (which defaults to 0).
2. In plumbing, it stays untouched as -1, and want_color
defaults it to off.
This works fine, but means that every porcelain has to check
and reassign its color flag. Now that want_color gives us a
place to put this check in a single spot, we can do that,
simplifying the calling code.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'color.c')
-rw-r--r-- | color.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -1,7 +1,7 @@ #include "cache.h" #include "color.h" -int git_use_color_default = 0; +static int git_use_color_default = 0; int color_stdout_is_tty = -1; /* @@ -196,12 +196,15 @@ int want_color(int var) { static int want_auto = -1; + if (var < 0) + var = git_use_color_default; + if (var == GIT_COLOR_AUTO) { if (want_auto < 0) want_auto = check_auto_color(); return want_auto; } - return var > 0; + return var; } int git_color_config(const char *var, const char *value, void *cb) |