mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
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
11
color.c
11
color.c
@@ -2,6 +2,7 @@
|
||||
#include "color.h"
|
||||
|
||||
int git_use_color_default = 0;
|
||||
int color_stdout_is_tty = -1;
|
||||
|
||||
/*
|
||||
* The list of available column colors.
|
||||
@@ -157,7 +158,7 @@ bad:
|
||||
die("bad color value '%.*s' for variable '%s'", value_len, value, var);
|
||||
}
|
||||
|
||||
int git_config_colorbool(const char *var, const char *value, int stdout_is_tty)
|
||||
int git_config_colorbool(const char *var, const char *value)
|
||||
{
|
||||
if (value) {
|
||||
if (!strcasecmp(value, "never"))
|
||||
@@ -177,9 +178,9 @@ int git_config_colorbool(const char *var, const char *value, int stdout_is_tty)
|
||||
|
||||
/* any normal truth value defaults to 'auto' */
|
||||
auto_color:
|
||||
if (stdout_is_tty < 0)
|
||||
stdout_is_tty = isatty(1);
|
||||
if (stdout_is_tty || (pager_in_use() && pager_use_color)) {
|
||||
if (color_stdout_is_tty < 0)
|
||||
color_stdout_is_tty = isatty(1);
|
||||
if (color_stdout_is_tty || (pager_in_use() && pager_use_color)) {
|
||||
char *term = getenv("TERM");
|
||||
if (term && strcmp(term, "dumb"))
|
||||
return 1;
|
||||
@@ -190,7 +191,7 @@ int git_config_colorbool(const char *var, const char *value, int stdout_is_tty)
|
||||
int git_color_default_config(const char *var, const char *value, void *cb)
|
||||
{
|
||||
if (!strcmp(var, "color.ui")) {
|
||||
git_use_color_default = git_config_colorbool(var, value, -1);
|
||||
git_use_color_default = git_config_colorbool(var, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user