Merge branch 'tr/mergetool-valgrind'
[gitweb.git] / builtin / config.c
index 211e118d575411b712ccf0387db2408708576902..0b4ecac855dce9b70878de4d15f4d317254d9ef3 100644 (file)
@@ -303,24 +303,18 @@ 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 get_color_ui_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"))
+               get_color_ui_found = git_config_colorbool(var, value);
        return 0;
 }
 
@@ -334,9 +328,11 @@ static int get_colorbool(int print)
                if (!strcmp(get_colorbool_slot, "color.diff"))
                        get_colorbool_found = get_diff_color_found;
                if (get_colorbool_found < 0)
-                       get_colorbool_found = git_use_color_default;
+                       get_colorbool_found = get_color_ui_found;
        }
 
+       get_colorbool_found = want_color(get_colorbool_found);
+
        if (print) {
                printf("%s\n", get_colorbool_found ? "true" : "false");
                return 0;
@@ -510,9 +506,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);
        }