aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicm <nicm>2023-01-08 23:34:46 +0000
committernicm <nicm>2023-01-08 23:34:46 +0000
commit565de3f54b37a955c15ae26db40aaaa76f71d02e (patch)
treeabe8a426e8adc4456678dc276d51a9f59fb026ae
parent7c0789d2d2721b70e04fe6a589f644797d2b5e1f (diff)
downloadrtmux-565de3f54b37a955c15ae26db40aaaa76f71d02e.tar.gz
rtmux-565de3f54b37a955c15ae26db40aaaa76f71d02e.tar.bz2
rtmux-565de3f54b37a955c15ae26db40aaaa76f71d02e.zip
Fix parsing of optional arguments so that and accept a - starting an
argument.
-rw-r--r--arguments.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arguments.c b/arguments.c
index 47ca17ce..326fad17 100644
--- a/arguments.c
+++ b/arguments.c
@@ -150,8 +150,6 @@ args_parse_flag_argument(struct args_value *values, u_int count, char **cause,
xasprintf(cause, "-%c argument must be a string", flag);
return (-1);
}
- if (argument->string[0] == '-')
- argument = NULL;
}
if (argument == NULL) {
if (optional_argument) {
@@ -210,12 +208,12 @@ args_parse_flags(const struct args_parse *parse, struct args_value *values,
xasprintf(cause, "unknown flag -%c", flag);
return (-1);
}
- if (*++found != ':') {
+ if (found[1] != ':') {
log_debug("%s: -%c", __func__, flag);
args_set(args, flag, NULL, 0);
continue;
}
- optional_argument = (*found == ':');
+ optional_argument = (found[2] == ':');
return (args_parse_flag_argument(values, count, cause, args, i,
string, flag, optional_argument));
}