1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
commit c7f3599ebca82fcd1c2a00de234f90ac1f5f0ede
Author: nicm <nicm>
Date: Sat Feb 22 01:38:47 2014 +0000
Fix -fg/-bg/-style with 256 colour terminals.
diff --git a/style.c b/style.c
index 97d5576..9974408 100644
--- a/style.c
+++ b/style.c
@@ -203,8 +203,14 @@ style_apply(struct grid_cell *gc, struct options *oo, const char *name)
memcpy(gc, &grid_default_cell, sizeof *gc);
gcp = options_get_style(oo, name);
- colour_set_fg(gc, gcp->fg);
- colour_set_bg(gc, gcp->bg);
+ if (gcp->flags & GRID_FLAG_FG256)
+ colour_set_fg(gc, gcp->fg | 0x100);
+ else
+ 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);
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;
gcp = options_get_style(oo, name);
- if (gcp->fg != 8)
- colour_set_fg(gc, gcp->fg);
- if (gcp->bg != 8)
- colour_set_bg(gc, gcp->bg);
+ if (gcp->fg != 8) {
+ if (gcp->flags & GRID_FLAG_FG256)
+ colour_set_fg(gc, gcp->fg | 0x100);
+ else
+ colour_set_fg(gc, gcp->fg);
+ }
+ if (gcp->bg != 8) {
+ if (gcp->flags & GRID_FLAG_BG256)
+ colour_set_bg(gc, gcp->bg | 0x100);
+ else
+ colour_set_bg(gc, gcp->bg);
+ }
if (gcp->attr != 0)
gc->attr |= gcp->attr;
}
|