Sync OpenBSD patchset 220:

If colours are not supported by the terminal, try to emulate a coloured
background by setting or clearing the reverse attribute.

This makes a few applications which don't use the reverse attribute themselves
a little happier, and allows the status, message and mode options to have
default attributes and fg/bg options that work as expected when set as reverse.
This commit is contained in:
Tiago Cunha
2009-08-09 16:50:57 +00:00
parent 65a28912eb
commit 88b83be07b
7 changed files with 46 additions and 32 deletions

View File

@ -1,4 +1,4 @@
/* $Id: status.c,v 1.107 2009-07-30 21:14:04 tcunha Exp $ */
/* $Id: status.c,v 1.108 2009-08-09 16:50:57 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -64,8 +64,8 @@ status_redraw(struct client *c)
if (gettimeofday(&c->status_timer, NULL) != 0)
fatal("gettimeofday");
memcpy(&stdgc, &grid_default_cell, sizeof gc);
stdgc.bg = options_get_number(&s->options, "status-fg");
stdgc.fg = options_get_number(&s->options, "status-bg");
stdgc.fg = options_get_number(&s->options, "status-fg");
stdgc.bg = options_get_number(&s->options, "status-bg");
stdgc.attr |= options_get_number(&s->options, "status-attr");
yy = c->tty.sy - 1;
@ -563,8 +563,8 @@ status_message_redraw(struct client *c)
len = c->tty.sx;
memcpy(&gc, &grid_default_cell, sizeof gc);
gc.bg = options_get_number(&s->options, "message-fg");
gc.fg = options_get_number(&s->options, "message-bg");
gc.fg = options_get_number(&s->options, "message-fg");
gc.bg = options_get_number(&s->options, "message-bg");
gc.attr |= options_get_number(&s->options, "message-attr");
screen_write_start(&ctx, NULL, &c->status);
@ -662,8 +662,8 @@ status_prompt_redraw(struct client *c)
len = c->tty.sx;
memcpy(&gc, &grid_default_cell, sizeof gc);
gc.bg = options_get_number(&s->options, "message-fg");
gc.fg = options_get_number(&s->options, "message-bg");
gc.fg = options_get_number(&s->options, "message-fg");
gc.bg = options_get_number(&s->options, "message-bg");
gc.attr |= options_get_number(&s->options, "message-attr");
screen_write_start(&ctx, NULL, &c->status);