color: support strike-through attribute
authorJeff King <peff@peff.net>
Thu, 23 Jun 2016 17:40:16 +0000 (13:40 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 Jun 2016 18:32:51 +0000 (11:32 -0700)
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>
Documentation/config.txt
color.c
color.h
t/t4026-color.sh

index cea3835..6882e70 100644 (file)
@@ -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).
diff --git a/color.c b/color.c
index b6933a1..a5b6581 100644 (file)
--- a/color.c
+++ b/color.c
@@ -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;
diff --git a/color.h b/color.h
index e6f82cc..2af1019 100644 (file)
--- a/color.h
+++ b/color.h
@@ -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,
index 13690f7..ec78c5e 100755 (executable)
@@ -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" \
-         "[1;2;3;4;5;7;22;23;24;25;27;38;2;255;255;255;48;2;255;255;255m"
+          ul noul blink noblink reverse noreverse strike nostrike" \
+         "[1;2;3;4;5;7;9;22;23;24;25;27;29;38;2;255;255;255;48;2;255;255;255m"
 '
 
 test_expect_success '0-7 are aliases for basic ANSI color names' '