diff options
-rw-r--r-- | Documentation/config.txt | 2 | ||||
-rw-r--r-- | color.c | 4 | ||||
-rwxr-xr-x | 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 @@ -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" ' |