diff options
Diffstat (limited to 'options.c')
-rw-r--r-- | options.c | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -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, ...) { |