mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Major tidy up and rework of options tree and set-option/show-options
commands this pushes more of the code into options.c and ties it more closely to the options table rather than having an unnecessary split. Also add support for array options (will be used later). Only (intentional) user visible change is that show-options output is now passed through vis(3) with VIS_DQ so quotes are escaped.
This commit is contained in:
49
style.c
49
style.c
@ -129,55 +129,6 @@ style_tostring(struct grid_cell *gc)
|
||||
return (s);
|
||||
}
|
||||
|
||||
/* Synchronize new -style option with the old one. */
|
||||
void
|
||||
style_update_new(struct options *oo, const char *name, const char *newname)
|
||||
{
|
||||
int value;
|
||||
struct grid_cell *gc;
|
||||
struct options_entry *o;
|
||||
|
||||
/* It's a colour or attribute, but with no -style equivalent. */
|
||||
if (newname == NULL)
|
||||
return;
|
||||
|
||||
o = options_find1(oo, newname);
|
||||
if (o == NULL)
|
||||
o = options_set_style(oo, newname, 0, "default");
|
||||
gc = &o->style;
|
||||
|
||||
o = options_find1(oo, name);
|
||||
if (o == NULL)
|
||||
o = options_set_number(oo, name, 8);
|
||||
value = o->num;
|
||||
|
||||
if (strstr(name, "-bg") != NULL)
|
||||
gc->bg = value;
|
||||
else if (strstr(name, "-fg") != NULL)
|
||||
gc->fg = value;
|
||||
else if (strstr(name, "-attr") != NULL)
|
||||
gc->attr = value;
|
||||
}
|
||||
|
||||
/* Synchronize all the old options with the new -style one. */
|
||||
void
|
||||
style_update_old(struct options *oo, const char *name, struct grid_cell *gc)
|
||||
{
|
||||
char newname[128];
|
||||
int size;
|
||||
|
||||
size = strrchr(name, '-') - name;
|
||||
|
||||
xsnprintf(newname, sizeof newname, "%.*s-bg", size, name);
|
||||
options_set_number(oo, newname, gc->bg);
|
||||
|
||||
xsnprintf(newname, sizeof newname, "%.*s-fg", size, name);
|
||||
options_set_number(oo, newname, gc->fg);
|
||||
|
||||
xsnprintf(newname, sizeof newname, "%.*s-attr", size, name);
|
||||
options_set_number(oo, newname, gc->attr);
|
||||
}
|
||||
|
||||
/* Apply a style. */
|
||||
void
|
||||
style_apply(struct grid_cell *gc, struct options *oo, const char *name)
|
||||
|
Reference in New Issue
Block a user