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 <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jun 23, 2016 at 13:40 UTC 9dc3515cf005639317fb95492b3157aadf056923
4 files changed +9 -7
Documentation/config.txt
+3 -2
@@ -160,8 +160,9 @@ Colors may also be given as numbers between 0 and 255; these use ANSI
160 your terminal supports it, you may also specify 24-bit RGB values as
161 hex, like `#ff0ab3`.
162 +
163 -The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`, and
164 -`italic`. The position of any attributes with respect to the colors
163 +The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`,
164 +`italic`, and `strike` (for crossed-out or "strikethrough" letters).
165 +The position of any attributes with respect to the colors
166 (before, after, or in between), doesn't matter. Specific attributes may
167 be turned off by prefixing them with `no` or `no-` (e.g., `noreverse`,
168 `no-ul`, etc).
color.c
+2 -1
@@ -136,7 +136,8 @@ static int parse_attr(const char *name, size_t len)
136 ATTR("italic", 3, 23),
137 ATTR("ul", 4, 24),
138 ATTR("blink", 5, 25),
139 - ATTR("reverse", 7, 27)
139 + ATTR("reverse", 7, 27),
140 + ATTR("strike", 9, 29)
141 #undef ATTR
142 };
143 int negate = 0;
color.h
+2 -2
@@ -17,9 +17,9 @@ struct strbuf;
17 * The space for attributes is also slightly overallocated, as
18 * the negation for some attributes is the same (e.g., nobold and nodim).
19 *
20 - * We allocate space for 6 attributes.
20 + * We allocate space for 7 attributes.
21 */
22 -#define COLOR_MAXLEN 70
22 +#define COLOR_MAXLEN 75
23
24 /*
25 * IMPORTANT: Due to the way these color codes are emulated on Windows,
t/t4026-color.sh
+2 -2
@@ -61,8 +61,8 @@ test_expect_success 'long color specification' '
61 test_expect_success 'absurdly long color specification' '
62 color \
63 "#ffffff #ffffff bold nobold dim nodim italic noitalic
64 - ul noul blink noblink reverse noreverse" \
65 - "[1;2;3;4;5;7;22;23;24;25;27;38;2;255;255;255;48;2;255;255;255m"
64 + ul noul blink noblink reverse noreverse strike nostrike" \
65 + "[1;2;3;4;5;7;9;22;23;24;25;27;29;38;2;255;255;255;48;2;255;255;255m"
66 '
67
68 test_expect_success '0-7 are aliases for basic ANSI color names' '