Introduce a new mode COLOR_MOVED_DEFAULT, which is the same as COLOR_MOVED_ZEBRA. But having two different symbols allows us to differentiate them in the code. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- Documentation/diff-options.txt | 3 +++ diff.c | 13 ++++++++++++- diff.h | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index 058c8014ed..d2c6a60af2 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -243,6 +243,9 @@ endif::git-diff[] -- no:: Moved lines are not highlighted. +default:: + Is a synonym for `zebra`. This may change to more sensible modes + in the future. plain:: Any line that is added in one location and was removed in another location will be colored with 'color.diff.newMoved'. diff --git a/diff.c b/diff.c index 5311dcf133..31cdec05ac 100644 --- a/diff.c +++ b/diff.c @@ -256,12 +256,23 @@ int git_diff_heuristic_config(const char *var, const char *value, void *cb) static int parse_color_moved(const char *arg) { + int v = git_parse_maybe_bool(arg); + + if (v != -1) { + if (v == 0) + return COLOR_MOVED_NO; + else if (v == 1) + return COLOR_MOVED_DEFAULT; + } + if (!strcmp(arg, "no")) return COLOR_MOVED_NO; else if (!strcmp(arg, "plain")) return COLOR_MOVED_PLAIN; else if (!strcmp(arg, "zebra")) return COLOR_MOVED_ZEBRA; + else if (!strcmp(arg, "default")) + return COLOR_MOVED_DEFAULT; else if (!strcmp(arg, "dimmed_zebra")) return COLOR_MOVED_ZEBRA_DIM; else @@ -4654,7 +4665,7 @@ int diff_opt_parse(struct diff_options *options, if (diff_color_moved_default) options->color_moved = diff_color_moved_default; if (options->color_moved == COLOR_MOVED_NO) - options->color_moved = COLOR_MOVED_ZEBRA_DIM; + options->color_moved = COLOR_MOVED_DEFAULT; } else if (!strcmp(arg, "--no-color-moved")) options->color_moved = COLOR_MOVED_NO; else if (skip_prefix(arg, "--color-moved=", &arg)) { diff --git a/diff.h b/diff.h index 98abd75521..9298d211d7 100644 --- a/diff.h +++ b/diff.h @@ -192,6 +192,7 @@ struct diff_options { COLOR_MOVED_NO = 0, COLOR_MOVED_PLAIN = 1, COLOR_MOVED_ZEBRA = 2, + COLOR_MOVED_DEFAULT = 2, COLOR_MOVED_ZEBRA_DIM = 3, } color_moved; }; -- 2.13.0.31.g9b732c453e