-/* $OpenBSD: tty.c,v 1.174 2015/04/15 22:10:13 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.175 2015/04/15 22:34:46 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
{
u_int colours;
+ colours = tty_term_number(tty->term, TTYC_COLORS);
+
/* Is this a 256-colour colour? */
if (gc->flags & GRID_FLAG_FG256) {
/* And not a 256 colour mode? */
gc->fg = colour_256to16(gc->fg);
if (gc->fg & 8) {
gc->fg &= 7;
- gc->attr |= GRID_ATTR_BRIGHT;
+ if (colours >= 16)
+ gc->fg += 90;
+ else
+ gc->attr |= GRID_ATTR_BRIGHT;
} else
gc->attr &= ~GRID_ATTR_BRIGHT;
gc->flags &= ~GRID_FLAG_FG256;
}
/* Is this an aixterm colour? */
- colours = tty_term_number(tty->term, TTYC_COLORS);
if (gc->fg >= 90 && gc->fg <= 97 && colours < 16) {
gc->fg -= 90;
gc->attr |= GRID_ATTR_BRIGHT;
{
u_int colours;
+ colours = tty_term_number(tty->term, TTYC_COLORS);
+
/* Is this a 256-colour colour? */
if (gc->flags & GRID_FLAG_BG256) {
/*
if (!(tty->term->flags & TERM_256COLOURS) &&
!(tty->term_flags & TERM_256COLOURS)) {
gc->bg = colour_256to16(gc->bg);
- if (gc->bg & 8)
+ if (gc->bg & 8) {
gc->bg &= 7;
- gc->attr &= ~GRID_ATTR_BRIGHT;
+ if (colours >= 16)
+ gc->fg += 90;
+ }
gc->flags &= ~GRID_FLAG_BG256;
}
return;
}
/* Is this an aixterm colour? */
- colours = tty_term_number(tty->term, TTYC_COLORS);
- if (gc->bg >= 90 && gc->bg <= 97 && colours < 16) {
+ if (gc->bg >= 90 && gc->bg <= 97 && colours < 16)
gc->bg -= 90;
- gc->attr |= GRID_ATTR_BRIGHT;
- }
}
void
/* Is this an aixterm bright colour? */
if (bg >= 90 && bg <= 97) {
- /* 16 colour terminals or above only. */
- if (tty_term_number(tty->term, TTYC_COLORS) >= 16) {
- xsnprintf(s, sizeof s, "\033[%dm", bg + 10);
- tty_puts(tty, s);
- goto save_bg;
- }
- bg -= 90;
- /* no such thing as a bold background */
+ xsnprintf(s, sizeof s, "\033[%dm", bg + 10);
+ tty_puts(tty, s);
+ goto save_bg;
}
/* Otherwise set the background colour. */