summaryrefslogtreecommitdiff
path: root/color.c
diff options
context:
space:
mode:
authorEyal Soha <shawarmakarma@gmail.com>2020-01-21 16:56:23 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-02-11 19:19:00 (GMT)
commitc444f032e43611b95612882cd06380866f8da0fd (patch)
tree032e6e5662f95a069abc4a320cc561d9abeb5912 /color.c
parent1751b09a92e176b164a3c5527f0458d5b1154d00 (diff)
downloadgit-c444f032e43611b95612882cd06380866f8da0fd.zip
git-c444f032e43611b95612882cd06380866f8da0fd.tar.gz
git-c444f032e43611b95612882cd06380866f8da0fd.tar.bz2
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>
Diffstat (limited to 'color.c')
-rw-r--r--color.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/color.c b/color.c
index 0c0ec46..64f52a4 100644
--- a/color.c
+++ b/color.c
@@ -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;