aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2016-06-23 13:39:07 -0400
committerJunio C Hamano <gitster@pobox.com>2016-06-23 11:32:51 -0700
commit54590a0eda10ecfdc39398d662ab3f663491067e (patch)
tree9c87874d0eda60f8b17ef68274c1fa5a4ec3a5b8
parent5621068f3d3c537b79b76201928c0b06025479ee (diff)
downloadgit-54590a0eda10ecfdc39398d662ab3f663491067e.tar.gz
git-54590a0eda10ecfdc39398d662ab3f663491067e.tar.xz
color: support "italic" attribute
We already support bold, underline, and similar attributes. Let's add italic to the mix. According to the Wikipedia page on ANSI colors, this attribute is "not widely supported", but it does seem to work on my xterm. We don't have to bump the maximum color size because we were already over-allocating it (but we do adjust the comment appropriately). Requested-by: Simon Courtois <scourtois@cubyx.fr> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/config.txt9
-rw-r--r--color.c1
-rw-r--r--color.h3
-rwxr-xr-xt/t4026-color.sh5
4 files changed, 11 insertions, 7 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 93ecd728a..cea3835c8 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -160,10 +160,11 @@ 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`, 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` or `no-` (e.g., `noreverse`, `no-ul`, etc).
+The accepted attributes are `bold`, `dim`, `ul`, `blink`, `reverse`, and
+`italic`. 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).
+
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
diff --git a/color.c b/color.c
index a22d83584..b6933a16f 100644
--- a/color.c
+++ b/color.c
@@ -133,6 +133,7 @@ static int parse_attr(const char *name, size_t len)
#define ATTR(x, val, neg) { (x), sizeof(x)-1, (val), (neg) }
ATTR("bold", 1, 22),
ATTR("dim", 2, 22),
+ ATTR("italic", 3, 23),
ATTR("ul", 4, 24),
ATTR("blink", 5, 25),
ATTR("reverse", 7, 27)
diff --git a/color.h b/color.h
index 2d0507ff7..e6f82cc3e 100644
--- a/color.h
+++ b/color.h
@@ -16,7 +16,8 @@ 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 also allocate space for 6 attributes (even though we have only 5).
+ *
+ * We allocate space for 6 attributes.
*/
#define COLOR_MAXLEN 70
diff --git a/t/t4026-color.sh b/t/t4026-color.sh
index 2065752ff..13690f7c3 100755
--- a/t/t4026-color.sh
+++ b/t/t4026-color.sh
@@ -60,8 +60,9 @@ test_expect_success 'long color specification' '
test_expect_success 'absurdly long color specification' '
color \
- "#ffffff #ffffff bold nobold dim nodim ul noul blink noblink reverse noreverse" \
- "[1;2;4;5;7;22;24;25;27;38;2;255;255;255;48;2;255;255;255m"
+ "#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"
'
test_expect_success '0-7 are aliases for basic ANSI color names' '