mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
color: use GIT_COLOR_* instead of numeric constants
Long ago Git's decision to show color for a subsytem was stored in a
tri-state variable: it could be true (1), false (0), or unknown (-1).
But since daa0c3d971 (color: delay auto-color decision until point of
use, 2011-08-17) we want to carry around a new state, "auto", which
bases the decision on the tty-ness of stdout (rather than collapsing
that "auto" state to a true/false immediately).
That commit introduced a set of GIT_COLOR_* defines to represent each
state: UNKNOWN, ALWAYS, NEVER, and AUTO. But it only used the AUTO
value, and left alone code using bare 0/1/-1 values. And of course since
then we've grown many new spots that use those bare values.
Let's switch all of these to use the named constants. That should make
the code a bit easier to read, as it is more obvious that we're
representing a color decision.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
e335ff31f7
commit
3c3e9b8303
12
color.c
12
color.c
@@ -373,19 +373,19 @@ int git_config_colorbool(const char *var, const char *value)
|
||||
{
|
||||
if (value) {
|
||||
if (!strcasecmp(value, "never"))
|
||||
return 0;
|
||||
return GIT_COLOR_NEVER;
|
||||
if (!strcasecmp(value, "always"))
|
||||
return 1;
|
||||
return GIT_COLOR_ALWAYS;
|
||||
if (!strcasecmp(value, "auto"))
|
||||
return GIT_COLOR_AUTO;
|
||||
}
|
||||
|
||||
if (!var)
|
||||
return -1;
|
||||
return GIT_COLOR_UNKNOWN;
|
||||
|
||||
/* Missing or explicit false to turn off colorization */
|
||||
if (!git_config_bool(var, value))
|
||||
return 0;
|
||||
return GIT_COLOR_NEVER;
|
||||
|
||||
/* any normal truth value defaults to 'auto' */
|
||||
return GIT_COLOR_AUTO;
|
||||
@@ -418,7 +418,7 @@ int want_color_fd(int fd, int var)
|
||||
if (fd < 1 || fd >= ARRAY_SIZE(want_auto))
|
||||
BUG("file descriptor out of range: %d", fd);
|
||||
|
||||
if (var < 0)
|
||||
if (var == GIT_COLOR_UNKNOWN)
|
||||
var = git_use_color_default;
|
||||
|
||||
if (var == GIT_COLOR_AUTO) {
|
||||
@@ -426,7 +426,7 @@ int want_color_fd(int fd, int var)
|
||||
want_auto[fd] = check_auto_color(fd);
|
||||
return want_auto[fd];
|
||||
}
|
||||
return var;
|
||||
return var == GIT_COLOR_ALWAYS;
|
||||
}
|
||||
|
||||
int git_color_config(const char *var, const char *value, void *cb UNUSED)
|
||||
|
||||
Reference in New Issue
Block a user