Some options tidying/code shrinkage. Also add -u option to unset non-global options (allowing them to inherit), and some extra info.

This commit is contained in:
Nicholas Marriott
2009-01-07 19:53:17 +00:00
parent 51ca51e329
commit 18312fa6fd
7 changed files with 248 additions and 202 deletions

View File

@@ -1,4 +1,4 @@
/* $Id: options.c,v 1.3 2008-06-23 07:41:21 nicm Exp $ */
/* $Id: options.c,v 1.4 2009-01-07 19:53:17 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -83,6 +83,22 @@ options_find(struct options *oo, const char *name)
return (o);
}
int
options_remove(struct options *oo, const char *name)
{
struct options_entry *o;
if ((o = options_find1(oo, name)) == NULL)
return (-1);
SPLAY_REMOVE(options_tree, &oo->tree, o);
xfree(o->name);
if (o->type == OPTIONS_STRING)
xfree(o->value.string);
xfree(o);
return (0);
}
void printflike3
options_set_string(struct options *oo, const char *name, const char *fmt, ...)
{