]> git.ipfire.org Git - thirdparty/git.git/commitdiff
add -i (built-in): prevent the `reset` "color" from being configured
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 11 Nov 2020 12:28:18 +0000 (12:28 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Nov 2020 17:07:53 +0000 (09:07 -0800)
The Perl version of that command sneakily uses `git config --get-color`
to figure out the ANSI sequence to reset the color, but passes the empty
string and therefore cannot actually match any config entry.

This was missed when re-implementing the command as a built-in command.
Let's fix this, preventing the `reset` sequence from being overridden
via the config.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
add-interactive.c

index 0f24992ca4a925af3b712eb196a165a24b68312a..f3a1d7456e0ced8e51c74084c8b2f114dcf805cb 100644 (file)
@@ -44,7 +44,6 @@ void init_add_i_state(struct add_i_state *s, struct repository *r)
        init_color(r, s, "help", s->help_color, GIT_COLOR_BOLD_RED);
        init_color(r, s, "prompt", s->prompt_color, GIT_COLOR_BOLD_BLUE);
        init_color(r, s, "error", s->error_color, GIT_COLOR_BOLD_RED);
-       init_color(r, s, "reset", s->reset_color, GIT_COLOR_RESET);
        init_color(r, s, "fraginfo", s->fraginfo_color,
                   diff_get_color(s->use_color, DIFF_FRAGINFO));
        init_color(r, s, "context", s->context_color,
@@ -54,6 +53,9 @@ void init_add_i_state(struct add_i_state *s, struct repository *r)
        init_color(r, s, "new", s->file_new_color,
                diff_get_color(s->use_color, DIFF_FILE_NEW));
 
+       strlcpy(s->reset_color,
+               s->use_color ? GIT_COLOR_RESET : "", COLOR_MAXLEN);
+
        FREE_AND_NULL(s->interactive_diff_filter);
        git_config_get_string("interactive.difffilter",
                              &s->interactive_diff_filter);