diff options
author | Thomas Adam <thomas@xteddy.org> | 2021-08-21 12:01:41 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2021-08-21 12:01:41 +0100 |
commit | 62036121fa3f69a93031f90956e659e090d79a1f (patch) | |
tree | ff1f52ad0c756d30e0dcc53adf8efd775da80c5a /arguments.c | |
parent | b0da0cee4d54aa64db0f49eee509a76fd89d6f68 (diff) | |
parent | 110ba767e591946d6784acef87737850f2ad3ae9 (diff) | |
download | rtmux-62036121fa3f69a93031f90956e659e090d79a1f.tar.gz rtmux-62036121fa3f69a93031f90956e659e090d79a1f.tar.bz2 rtmux-62036121fa3f69a93031f90956e659e090d79a1f.zip |
Merge branch 'obsd-master' into master
Diffstat (limited to 'arguments.c')
-rw-r--r-- | arguments.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/arguments.c b/arguments.c index 92072ad5..6466ea76 100644 --- a/arguments.c +++ b/arguments.c @@ -78,7 +78,7 @@ args_create(void) /* Parse an argv and argc into a new argument set. */ struct args * -args_parse(const char *template, int argc, char **argv, int lower, int upper) +args_parse(const struct args_parse *parse, int argc, char **argv) { struct args *args; int opt; @@ -88,10 +88,10 @@ args_parse(const char *template, int argc, char **argv, int lower, int upper) optarg = NULL; args = args_create(); - while ((opt = getopt(argc, argv, template)) != -1) { + while ((opt = getopt(argc, argv, parse->template)) != -1) { if (opt < 0) continue; - if (opt == '?' || strchr(template, opt) == NULL) { + if (opt == '?' || strchr(parse->template, opt) == NULL) { args_free(args); return (NULL); } @@ -104,7 +104,8 @@ args_parse(const char *template, int argc, char **argv, int lower, int upper) args->argc = argc; args->argv = cmd_copy_argv(argc, argv); - if ((lower != -1 && argc < lower) || (upper != -1 && argc > upper)) { + if ((parse->lower != -1 && argc < parse->lower) || + (parse->upper != -1 && argc > parse->upper)) { args_free(args); return (NULL); } @@ -126,7 +127,7 @@ args_free(struct args *args) RB_REMOVE(args_tree, &args->tree, entry); TAILQ_FOREACH_SAFE(value, &entry->values, entry, value1) { TAILQ_REMOVE(&entry->values, value, entry); - free(value->value); + free(value->string); free(value); } free(entry); @@ -208,7 +209,7 @@ args_print(struct args *args) args_print_add(&buf, &len, " -%c", entry->flag); else args_print_add(&buf, &len, "-%c", entry->flag); - args_print_add_argument(&buf, &len, value->value); + args_print_add_argument(&buf, &len, value->string); } } @@ -297,7 +298,7 @@ args_set(struct args *args, u_char flag, const char *s) if (s != NULL) { value = xcalloc(1, sizeof *value); - value->value = xstrdup(s); + value->string = xstrdup(s); TAILQ_INSERT_TAIL(&entry->values, value, entry); } } @@ -312,7 +313,7 @@ args_get(struct args *args, u_char flag) return (NULL); if (TAILQ_EMPTY(&entry->values)) return (NULL); - return (TAILQ_LAST(&entry->values, args_values)->value); + return (TAILQ_LAST(&entry->values, args_values)->string); } /* Get first argument. */ @@ -385,7 +386,7 @@ args_strtonum(struct args *args, u_char flag, long long minval, } value = TAILQ_LAST(&entry->values, args_values); - ll = strtonum(value->value, minval, maxval, &errstr); + ll = strtonum(value->string, minval, maxval, &errstr); if (errstr != NULL) { *cause = xstrdup(errstr); return (0); @@ -407,7 +408,7 @@ args_percentage(struct args *args, u_char flag, long long minval, *cause = xstrdup("missing"); return (0); } - value = TAILQ_LAST(&entry->values, args_values)->value; + value = TAILQ_LAST(&entry->values, args_values)->string; return (args_string_percentage(value, minval, maxval, curval, cause)); } |