Sync OpenBSD patchset 594:

Fix the logic so that transition from a 256 colour to default works properly.
pull/1/head
Tiago Cunha 2009-12-26 23:50:15 +00:00
parent 51a284e056
commit 71e6b4d617
1 changed files with 7 additions and 5 deletions

12
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.184 2009-12-26 23:49:27 tcunha Exp $ */
/* $Id: tty.c,v 1.185 2009-12-26 23:50:15 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -1258,19 +1258,21 @@ tty_colours(struct tty *tty, const struct grid_cell *gc, u_char *attr)
tty_reset(tty);
else {
if (fg_default &&
fg != tc->fg && !(tc->flags & GRID_FLAG_FG256)) {
(tc->fg != 8 || tc->flags & GRID_FLAG_FG256)) {
if (have_ax)
tty_puts(tty, "\033[39m");
else if (tc->fg != 7)
else if (tc->fg != 7 ||
tc->flags & GRID_FLAG_FG256)
tty_putcode1(tty, TTYC_SETAF, 7);
tc->fg = 8;
tc->flags &= ~GRID_FLAG_FG256;
}
if (bg_default &&
bg != tc->bg && !(tc->flags & GRID_FLAG_BG256)) {
(tc->bg != 8 || tc->flags & GRID_FLAG_BG256)) {
if (have_ax)
tty_puts(tty, "\033[49m");
else if (tc->bg != 0)
else if (tc->bg != 0 ||
tc->flags & GRID_FLAG_BG256)
tty_putcode1(tty, TTYC_SETAB, 0);
tc->bg = 8;
tc->flags &= ~GRID_FLAG_BG256;