diff options
author | Thomas Adam <thomas@xteddy.org> | 2019-05-23 13:02:27 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2019-05-23 13:02:27 +0100 |
commit | 75aeb733f292639f8332df11315ca8280e5631fd (patch) | |
tree | d459b4c2381ca737009613577deafe14196eceef /options.c | |
parent | 7ca2e2fe88cd282d3e8faea3f2000ad15972f71d (diff) | |
parent | 723010ba72e337832402f8e44981c02caa30b476 (diff) | |
download | rtmux-75aeb733f292639f8332df11315ca8280e5631fd.tar.gz rtmux-75aeb733f292639f8332df11315ca8280e5631fd.tar.bz2 rtmux-75aeb733f292639f8332df11315ca8280e5631fd.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'options.c')
-rw-r--r-- | options.c | 19 |
1 files changed, 12 insertions, 7 deletions
@@ -353,8 +353,7 @@ options_array_set(struct options_entry *o, u_int idx, const char *value, { struct options_array_item *a; char *new; - struct cmd_list *cmdlist; - char *error; + struct cmd_parse_result *pr; if (!OPTIONS_IS_ARRAY(o)) { if (cause != NULL) @@ -363,13 +362,19 @@ options_array_set(struct options_entry *o, u_int idx, const char *value, } if (OPTIONS_IS_COMMAND(o)) { - cmdlist = cmd_string_parse(value, NULL, 0, &error); - if (cmdlist == NULL && error != NULL) { + pr = cmd_parse_from_string(value, NULL); + switch (pr->status) { + case CMD_PARSE_EMPTY: + *cause = xstrdup("empty command"); + return (-1); + case CMD_PARSE_ERROR: if (cause != NULL) - *cause = error; + *cause = pr->error; else - free(error); + free(pr->error); return (-1); + case CMD_PARSE_SUCCESS: + break; } } @@ -397,7 +402,7 @@ options_array_set(struct options_entry *o, u_int idx, const char *value, if (OPTIONS_IS_STRING(o)) a->value.string = new; else if (OPTIONS_IS_COMMAND(o)) - a->value.cmdlist = cmdlist; + a->value.cmdlist = pr->cmdlist; return (0); } |