Skip to content

Commit

Permalink
color: support "italic" attribute
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Jeff King <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
peff authored and gitster committed Jun 23, 2016
1 parent 5621068 commit 54590a0
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 7 deletions.
9 changes: 5 additions & 4 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions color.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 2 additions & 1 deletion color.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
5 changes: 3 additions & 2 deletions t/t4026-color.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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' '
Expand Down

0 comments on commit 54590a0

Please sign in to comment.