color: support strike-through attribute

This is the only remaining attribute that is commonly
supported (at least by xterm) that we don't support. Let's
add it for completeness.

Signed-off-by: Jeff King <>
Signed-off-by: Junio C Hamano <>
Jeff King 7 years ago committed by Junio C Hamano
parent 54590a0eda
commit 9dc3515cf0
  1. 5
  2. 3
  3. 4
  4. 4

@ -160,8 +160,9 @@ Colors may also be given as numbers between 0 and 255; these use ANSI
your terminal supports it, you may also specify 24-bit RGB values as
hex, like `#ff0ab3`.
The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`, and
`italic`. The position of any attributes with respect to the colors
The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`,
`italic`, and `strike` (for crossed-out or "strikethrough" letters).
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` or `no-` (e.g., `noreverse`,
`no-ul`, etc).

@ -136,7 +136,8 @@ static int parse_attr(const char *name, size_t len)
ATTR("italic", 3, 23),
ATTR("ul", 4, 24),
ATTR("blink", 5, 25),
ATTR("reverse", 7, 27)
ATTR("reverse", 7, 27),
ATTR("strike", 9, 29)
#undef ATTR
int negate = 0;

@ -17,9 +17,9 @@ struct strbuf;
* The space for attributes is also slightly overallocated, as
* the negation for some attributes is the same (e.g., nobold and nodim).
* We allocate space for 6 attributes.
* We allocate space for 7 attributes.
#define COLOR_MAXLEN 70
#define COLOR_MAXLEN 75
* IMPORTANT: Due to the way these color codes are emulated on Windows,

@ -61,8 +61,8 @@ test_expect_success 'long color specification' '
test_expect_success 'absurdly long color specification' '
color \
"#ffffff #ffffff bold nobold dim nodim italic noitalic
ul noul blink noblink reverse noreverse" \
ul noul blink noblink reverse noreverse strike nostrike" \
test_expect_success '0-7 are aliases for basic ANSI color names' '