From 5621068f3d3c537b79b76201928c0b06025479ee Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 23 Jun 2016 13:38:44 -0400 Subject: [PATCH] color: allow "no-" for negating attributes Using "no-bold" rather than "nobold" is easier to read and more natural to type (to me, anyway, even though I was the person who introduced "nobold" in the first place). It's easy to allow both. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- Documentation/config.txt | 2 +- color.c | 4 +++- t/t4026-color.sh | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 836f731873..93ecd728ab 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -163,7 +163,7 @@ hex, like `#ff0ab3`. The accepted attributes are `bold`, `dim`, `ul`, `blink`, and `reverse`. The position of any attributes with respect to the colors (before, after, or in between), doesn't matter. Specific attributes may be turned off -by prefixing them with `no` (e.g., `noreverse`, `noul`, etc). +by prefixing them with `no` or `no-` (e.g., `noreverse`, `no-ul`, etc). + For git's pre-defined color slots, the attributes are meant to be reset at the beginning of each item in the colored output. So setting diff --git a/color.c b/color.c index 63e7b0c9a1..a22d835842 100644 --- a/color.c +++ b/color.c @@ -141,8 +141,10 @@ static int parse_attr(const char *name, size_t len) int negate = 0; int i; - if (skip_prefix_mem(name, len, "no", &name, &len)) + if (skip_prefix_mem(name, len, "no", &name, &len)) { + skip_prefix_mem(name, len, "-", &name, &len); negate = 1; + } for (i = 0; i < ARRAY_SIZE(attrs); i++) { if (attrs[i].len == len && !memcmp(attrs[i].name, name, len)) diff --git a/t/t4026-color.sh b/t/t4026-color.sh index 2b32c4fbe6..2065752ff9 100755 --- a/t/t4026-color.sh +++ b/t/t4026-color.sh @@ -50,6 +50,10 @@ test_expect_success 'attr negation' ' color "nobold nodim noul noblink noreverse" "[22;24;25;27m" ' +test_expect_success '"no-" variant of negation' ' + color "no-bold no-blink" "[22;25m" +' + test_expect_success 'long color specification' ' color "254 255 bold dim ul blink reverse" "[1;2;4;5;7;38;5;254;48;5;255m" '