=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/style.c,v retrieving revision 1.23 retrieving revision 1.24 diff -c -r1.23 -r1.24 *** src/usr.bin/tmux/style.c 2019/07/06 20:37:29 1.23 --- src/usr.bin/tmux/style.c 2019/09/15 21:42:57 1.24 *************** *** 1,4 **** ! /* $OpenBSD: style.c,v 1.23 2019/07/06 20:37:29 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: style.c,v 1.24 2019/09/15 21:42:57 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 36,48 **** STYLE_ALIGN_DEFAULT, STYLE_LIST_OFF, ! STYLE_RANGE_NONE, 0 }; /* ! * Parse an embedded style of the form "fg=colour,bg=colour,bright,...". ! * Note that this adds onto the given style, so it must have been initialized ! * alredy. */ int style_parse(struct style *sy, const struct grid_cell *base, const char *in) --- 36,50 ---- STYLE_ALIGN_DEFAULT, STYLE_LIST_OFF, ! STYLE_RANGE_NONE, 0, ! ! STYLE_DEFAULT_BASE }; /* ! * Parse an embedded style of the form "fg=colour,bg=colour,bright,...". Note ! * that this adds onto the given style, so it must have been initialized ! * already. */ int style_parse(struct style *sy, const struct grid_cell *base, const char *in) *************** *** 74,80 **** sy->gc.bg = base->bg; sy->gc.attr = base->attr; sy->gc.flags = base->flags; ! } else if (strcasecmp(tmp, "nolist") == 0) sy->list = STYLE_LIST_OFF; else if (strncasecmp(tmp, "list=", 5) == 0) { if (strcasecmp(tmp + 5, "on") == 0) --- 76,86 ---- sy->gc.bg = base->bg; sy->gc.attr = base->attr; sy->gc.flags = base->flags; ! } else if (strcasecmp(tmp, "push-default") == 0) ! sy->default_type = STYLE_DEFAULT_PUSH; ! else if (strcasecmp(tmp, "pop-default") == 0) ! sy->default_type = STYLE_DEFAULT_POP; ! else if (strcasecmp(tmp, "nolist") == 0) sy->list = STYLE_LIST_OFF; else if (strncasecmp(tmp, "list=", 5) == 0) { if (strcasecmp(tmp + 5, "on") == 0) *************** *** 218,223 **** --- 224,237 ---- tmp); comma = ","; } + if (sy->default_type != STYLE_DEFAULT_BASE) { + if (sy->default_type == STYLE_DEFAULT_PUSH) + tmp = "push-default"; + else if (sy->default_type == STYLE_DEFAULT_POP) + tmp = "pop-default"; + off += xsnprintf(s + off, sizeof s - off, "%s%s", comma, tmp); + comma = ","; + } if (sy->fill != 8) { off += xsnprintf(s + off, sizeof s - off, "%sfill=%s", comma, colour_tostring(sy->fill)); *************** *** 255,275 **** gc->fg = sy->gc.fg; gc->bg = sy->gc.bg; gc->attr |= sy->gc.attr; - } - - /* Apply a style, updating if default. */ - void - style_apply_update(struct grid_cell *gc, struct options *oo, const char *name) - { - struct style *sy; - - sy = options_get_style(oo, name); - if (sy->gc.fg != 8) - gc->fg = sy->gc.fg; - if (sy->gc.bg != 8) - gc->bg = sy->gc.bg; - if (sy->gc.attr != 0) - gc->attr |= sy->gc.attr; } /* Initialize style from cell. */ --- 269,274 ----