summaryrefslogtreecommitdiffstats
path: root/arguments.c
diff options
context:
space:
mode:
authornicm <nicm>2014-01-09 13:51:57 +0000
committernicm <nicm>2014-01-09 13:51:57 +0000
commit66829ee12e45656fccfe8879b7ac2f983d138b42 (patch)
tree44af67b7fdb528453b75fbcc92ea1ac4f4cde42f /arguments.c
parent1751da76d5fed929636633905be5f5cfa204844b (diff)
Simplify args_set, from Tiago Cunha.
Diffstat (limited to 'arguments.c')
-rw-r--r--arguments.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/arguments.c b/arguments.c
index e699834c..4a3f4579 100644
--- a/arguments.c
+++ b/arguments.c
@@ -205,19 +205,15 @@ args_set(struct args *args, u_char ch, const char *value)
/* Replace existing argument. */
if ((entry = args_find(args, ch)) != NULL) {
free(entry->value);
- if (value != NULL)
- entry->value = xstrdup(value);
- else
- entry->value = NULL;
- return;
+ entry->value = NULL;
+ } else {
+ entry = xcalloc(1, sizeof *entry);
+ entry->flag = ch;
+ RB_INSERT(args_tree, &args->tree, entry);
}
- entry = xcalloc(1, sizeof *entry);
- entry->flag = ch;
if (value != NULL)
entry->value = xstrdup(value);
-
- RB_INSERT(args_tree, &args->tree, entry);
}
/* Get argument value. Will be NULL if it isn't present. */