aboutsummaryrefslogtreecommitdiff
path: root/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'options.c')
-rw-r--r--options.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/options.c b/options.c
index 63ff6e4f..140135ea 100644
--- a/options.c
+++ b/options.c
@@ -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, ...)
{