diff --git a/tty-term.c b/tty-term.c index b9afd96c..b7536487 100644 --- a/tty-term.c +++ b/tty-term.c @@ -488,8 +488,9 @@ tty_term_find(char *name, int fd, char **cause) goto error; } - /* Figure out if we have 256. */ - if (tty_term_number(term, TTYC_COLORS) == 256) + /* Figure out if we have 256 colours (or more). */ + if (tty_term_number(term, TTYC_COLORS) >= 256 || + tty_term_has(term, TTYC_RGB)) term->flags |= TERM_256COLOURS; /* diff --git a/tty.c b/tty.c index a006fb27..e8ab4714 100644 --- a/tty.c +++ b/tty.c @@ -2000,8 +2000,7 @@ tty_colours_fg(struct tty *tty, const struct grid_cell *gc) char s[32]; /* Is this a 24-bit or 256-colour colour? */ - if (gc->fg & COLOUR_FLAG_RGB || - gc->fg & COLOUR_FLAG_256) { + if (gc->fg & COLOUR_FLAG_RGB || gc->fg & COLOUR_FLAG_256) { if (tty_try_colour(tty, gc->fg, "38") == 0) goto save_fg; /* Should not get here, already converted in tty_check_fg. */ @@ -2030,8 +2029,7 @@ tty_colours_bg(struct tty *tty, const struct grid_cell *gc) char s[32]; /* Is this a 24-bit or 256-colour colour? */ - if (gc->bg & COLOUR_FLAG_RGB || - gc->bg & COLOUR_FLAG_256) { + if (gc->bg & COLOUR_FLAG_RGB || gc->bg & COLOUR_FLAG_256) { if (tty_try_colour(tty, gc->bg, "48") == 0) goto save_bg; /* Should not get here, already converted in tty_check_bg. */