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 <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2016-06-23 13:38:44 -04:00
committed by Junio C Hamano
parent df8e472cc1
commit 5621068f3d
3 changed files with 8 additions and 2 deletions

View File

@ -163,7 +163,7 @@ hex, like `#ff0ab3`.
The accepted attributes are `bold`, `dim`, `ul`, `blink`, and `reverse`. The accepted attributes are `bold`, `dim`, `ul`, `blink`, and `reverse`.
The position of any attributes with respect to the colors (before, after, The position of any attributes with respect to the colors (before, after,
or in between), doesn't matter. Specific attributes may be turned off 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 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 at the beginning of each item in the colored output. So setting

View File

@ -141,8 +141,10 @@ static int parse_attr(const char *name, size_t len)
int negate = 0; int negate = 0;
int i; 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; negate = 1;
}
for (i = 0; i < ARRAY_SIZE(attrs); i++) { for (i = 0; i < ARRAY_SIZE(attrs); i++) {
if (attrs[i].len == len && !memcmp(attrs[i].name, name, len)) if (attrs[i].len == len && !memcmp(attrs[i].name, name, len))

View File

@ -50,6 +50,10 @@ test_expect_success 'attr negation' '
color "nobold nodim noul noblink noreverse" "[22;24;25;27m" 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' ' 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" color "254 255 bold dim ul blink reverse" "[1;2;4;5;7;38;5;254;48;5;255m"
' '