diff options
author | Eyal Soha <shawarmakarma@gmail.com> | 2020-01-21 08:56:23 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-02-11 11:19:00 -0800 |
commit | c444f032e43611b95612882cd06380866f8da0fd (patch) | |
tree | 032e6e5662f95a069abc4a320cc561d9abeb5912 | |
parent | color.c: support bright aixterm colors (diff) | |
download | tgif-c444f032e43611b95612882cd06380866f8da0fd.tar.xz |
color.c: alias RGB colors 8-15 to aixterm colors
This results in shorter output, and is _probably_ more portable. There
is at least one environment (GitHub Actions) which supports 16-color
mode but not 256-color mode. It's possible there are environments
which go the other way, but it seems unlikely.
Signed-off-by: Eyal Soha <shawarmakarma@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | color.c | 7 | ||||
-rwxr-xr-x | t/t4026-color.sh | 4 |
2 files changed, 10 insertions, 1 deletions
@@ -136,11 +136,16 @@ static int parse_color(struct color *out, const char *name, int len) else if (val < 0) { out->type = COLOR_NORMAL; return 0; - /* Rewrite low numbers as more-portable standard colors. */ + /* Rewrite 0-7 as more-portable standard colors. */ } else if (val < 8) { out->type = COLOR_ANSI; out->value = val + COLOR_FOREGROUND_ANSI; return 0; + /* Rewrite 8-15 as more-portable aixterm colors. */ + } else if (val < 16) { + out->type = COLOR_ANSI; + out->value = val - 8 + COLOR_FOREGROUND_BRIGHT_ANSI; + return 0; } else if (val < 256) { out->type = COLOR_256; out->value = val; diff --git a/t/t4026-color.sh b/t/t4026-color.sh index 78c69de90a..c0b642c1ab 100755 --- a/t/t4026-color.sh +++ b/t/t4026-color.sh @@ -82,6 +82,10 @@ test_expect_success '0-7 are aliases for basic ANSI color names' ' color "0 7" "[30;47m" ' +test_expect_success '8-15 are aliases for aixterm color names' ' + color "12 13" "[94;105m" +' + test_expect_success '256 colors' ' color "254 bold 255" "[1;38;5;254;48;5;255m" ' |