Support set -a (append) with user options, suggested by Xandor Schiefer.

This commit is contained in:
nicm
2016-09-26 09:02:34 +00:00
parent eb50e7a2c8
commit 69e980602b
2 changed files with 20 additions and 11 deletions

View File

@ -128,19 +128,23 @@ options_set_string(struct options *oo, const char *name, const char *fmt, ...)
{
struct options_entry *o;
va_list ap;
char *s;
s = NULL;
if ((o = options_find1(oo, name)) == NULL) {
o = xmalloc(sizeof *o);
o->name = xstrdup(name);
RB_INSERT(options_tree, &oo->tree, o);
memcpy(&o->style, &grid_default_cell, sizeof o->style);
} else if (o->type == OPTIONS_STRING)
free(o->str);
s = o->str;
va_start(ap, fmt);
o->type = OPTIONS_STRING;
xvasprintf(&o->str, fmt, ap);
va_end(ap);
free(s);
return (o);
}