summaryrefslogtreecommitdiffstats
path: root/cmd-set-option.c
diff options
context:
space:
mode:
authornicm <nicm>2017-01-25 23:50:51 +0000
committernicm <nicm>2017-01-25 23:50:51 +0000
commit776ce8a9d5a30bd4a8aab59c5152e78774bb805c (patch)
tree1e05285dce815c5ce6d4a771209455525fcfbe98 /cmd-set-option.c
parent163732e89fafdef6e4b38f7584336611b2135092 (diff)
Clear option before adding to array if no -a, reported by Michael
Nickerson.
Diffstat (limited to 'cmd-set-option.c')
-rw-r--r--cmd-set-option.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/cmd-set-option.c b/cmd-set-option.c
index f7e6b730..c7cef42c 100644
--- a/cmd-set-option.c
+++ b/cmd-set-option.c
@@ -211,9 +211,11 @@ cmd_set_option_exec(struct cmd *self, struct cmdq_item *item)
}
if (o == NULL)
o = options_empty(oo, options_table_entry(parent));
- if (idx == -1)
+ if (idx == -1) {
+ if (!append)
+ options_array_clear(o);
options_array_assign(o, value);
- else if (options_array_set(o, idx, value, append) != 0) {
+ } else if (options_array_set(o, idx, value, append) != 0) {
cmdq_error(item, "invalid index: %s", args->argv[0]);
return (CMD_RETURN_ERROR);
}