summaryrefslogtreecommitdiffstats
path: root/arguments.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2021-08-21 12:01:41 +0100
committerThomas Adam <thomas@xteddy.org>2021-08-21 12:01:41 +0100
commit62036121fa3f69a93031f90956e659e090d79a1f (patch)
treeff1f52ad0c756d30e0dcc53adf8efd775da80c5a /arguments.c
parentb0da0cee4d54aa64db0f49eee509a76fd89d6f68 (diff)
parent110ba767e591946d6784acef87737850f2ad3ae9 (diff)
Merge branch 'obsd-master' into master
Diffstat (limited to 'arguments.c')
-rw-r--r--arguments.c21
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));
}