git_config_colorbool: refactor stdout_is_tty handling
Usually this function figures out for itself whether stdout is a tty. However, it has an extra parameter just to allow git-config to override the auto-detection for its --get-colorbool option. Instead of an extra parameter, let's just use a global variable. This makes calling easier in the common case, and will make refactoring the colorbool code much simpler. 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
f1c9626105
commit
e269eb7946
@ -303,24 +303,17 @@ static void get_color(const char *def_color)
|
||||
fputs(parsed_color, stdout);
|
||||
}
|
||||
|
||||
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,
|
||||
void *cb)
|
||||
{
|
||||
if (!strcmp(var, get_colorbool_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);
|
||||
}
|
||||
if (!strcmp(var, "color.ui")) {
|
||||
git_use_color_default = git_config_colorbool(var, value, stdout_is_tty);
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, get_colorbool_slot))
|
||||
get_colorbool_found = git_config_colorbool(var, value);
|
||||
else if (!strcmp(var, "diff.color"))
|
||||
get_diff_color_found = git_config_colorbool(var, value);
|
||||
else if (!strcmp(var, "color.ui"))
|
||||
git_use_color_default = git_config_colorbool(var, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -510,9 +503,7 @@ int cmd_config(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
else if (actions == ACTION_GET_COLORBOOL) {
|
||||
if (argc == 1)
|
||||
stdout_is_tty = git_config_bool("command line", argv[0]);
|
||||
else if (argc == 0)
|
||||
stdout_is_tty = isatty(1);
|
||||
color_stdout_is_tty = git_config_bool("command line", argv[0]);
|
||||
return get_colorbool(argc != 0);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user