summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2017-06-03 07:15:23 +0000
committernicm <nicm>2017-06-03 07:15:23 +0000
commit493a1846d070f647655bed663c1cb444ee132093 (patch)
tree84e8623b6dbfaba586935f8883dca607368b3afd
parent248aa54bfdef25ff95db3c3426651f9894c652c5 (diff)
Foreground colours with the bright attribute set need to use the bright
entries in the palette. GitHub issue 954.
-rw-r--r--tty.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/tty.c b/tty.c
index 72453821..7759e0ea 100644
--- a/tty.c
+++ b/tty.c
@@ -1841,10 +1841,18 @@ tty_check_fg(struct tty *tty, const struct window_pane *wp,
u_int colours;
int c;
- /* Perform substitution if this pane has a palette */
- if ((~gc->flags & GRID_FLAG_NOPALETTE) &&
- (c = window_pane_get_palette(wp, gc->fg)) != -1)
- gc->fg = c;
+ /*
+ * Perform substitution if this pane has a palette. If the bright
+ * attribute is set, use the bright entry in the palette by changing to
+ * the aixterm colour.
+ */
+ if (~gc->flags & GRID_FLAG_NOPALETTE) {
+ c = gc->fg;
+ if (gc->fg < 8 && gc->attr & GRID_ATTR_BRIGHT)
+ c += 90;
+ if ((c = window_pane_get_palette(wp, c)) != -1)
+ gc->fg = c;
+ }
/* Is this a 24-bit colour? */
if (gc->fg & COLOUR_FLAG_RGB) {
@@ -1894,10 +1902,11 @@ tty_check_bg(struct tty *tty, const struct window_pane *wp,
u_int colours;
int c;
- /* Perform substitution if this pane has a palette */
- if ((~gc->flags & GRID_FLAG_NOPALETTE) &&
- (c = window_pane_get_palette(wp, gc->bg)) != -1)
- gc->bg = c;
+ /* Perform substitution if this pane has a palette. */
+ if (~gc->flags & GRID_FLAG_NOPALETTE) {
+ if ((c = window_pane_get_palette(wp, gc->bg)) != -1)
+ gc->bg = c;
+ }
/* Is this a 24-bit colour? */
if (gc->bg & COLOUR_FLAG_RGB) {