From 18312fa6fd1b06c68d5f97fd7d1b8830b0d8669f Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 7 Jan 2009 19:53:17 +0000 Subject: Some options tidying/code shrinkage. Also add -u option to unset non-global options (allowing them to inherit), and some extra info. --- options.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'options.c') 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 @@ -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, ...) { -- cgit