Re: [PATCH 3/3] color.c: Alias RGB colors 8-15 to aixterm colors
Eyal Soha <shawarmakarma@gmail.com> writes:
> 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.
Show 44 quoted lines
>
> Signed-off-by: Eyal Soha <shawarmakarma@gmail.com>
> ---
> color.c | 7 ++++++-
> t/t4026-color.sh | 4 ++++
> 2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/color.c b/color.c
> index 66d32e1191..ba067ed97a 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;
> 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"
> '