Fix -fg/-bg/-style with 256 colour terminals.

This commit is contained in:
nicm 2014-02-22 01:38:47 +00:00
parent 6daf06b1ad
commit c7f3599ebc

18
style.c
View File

@ -203,7 +203,13 @@ style_apply(struct grid_cell *gc, struct options *oo, const char *name)
memcpy(gc, &grid_default_cell, sizeof *gc); memcpy(gc, &grid_default_cell, sizeof *gc);
gcp = options_get_style(oo, name); gcp = options_get_style(oo, name);
if (gcp->flags & GRID_FLAG_FG256)
colour_set_fg(gc, gcp->fg | 0x100);
else
colour_set_fg(gc, gcp->fg); colour_set_fg(gc, gcp->fg);
if (gcp->flags & GRID_FLAG_BG256)
colour_set_bg(gc, gcp->bg | 0x100);
else
colour_set_bg(gc, gcp->bg); colour_set_bg(gc, gcp->bg);
gc->attr |= gcp->attr; gc->attr |= gcp->attr;
} }
@ -215,10 +221,18 @@ style_apply_update(struct grid_cell *gc, struct options *oo, const char *name)
struct grid_cell *gcp; struct grid_cell *gcp;
gcp = options_get_style(oo, name); gcp = options_get_style(oo, name);
if (gcp->fg != 8) if (gcp->fg != 8) {
if (gcp->flags & GRID_FLAG_FG256)
colour_set_fg(gc, gcp->fg | 0x100);
else
colour_set_fg(gc, gcp->fg); colour_set_fg(gc, gcp->fg);
if (gcp->bg != 8) }
if (gcp->bg != 8) {
if (gcp->flags & GRID_FLAG_BG256)
colour_set_bg(gc, gcp->bg | 0x100);
else
colour_set_bg(gc, gcp->bg); colour_set_bg(gc, gcp->bg);
}
if (gcp->attr != 0) if (gcp->attr != 0)
gc->attr |= gcp->attr; gc->attr |= gcp->attr;
} }