summaryrefslogtreecommitdiffstats
path: root/arguments.c
diff options
context:
space:
mode:
authornicm <nicm>2021-08-21 08:44:59 +0000
committernicm <nicm>2021-08-21 08:44:59 +0000
commitd371764d022b6c074f967faee815c3117203451e (patch)
treecb72547360e45a53b6ad1418a75ba6f7f9b11a74 /arguments.c
parentd589be6c65c7295880bb84cd875baab2f77d5067 (diff)
Wrap command argument definitions in their own struct.
Diffstat (limited to 'arguments.c')
-rw-r--r--arguments.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arguments.c b/arguments.c
index ad3e20b3..77ca8e73 100644
--- a/arguments.c
+++ b/arguments.c
@@ -79,7 +79,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;
@@ -89,10 +89,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);
}
@@ -105,7 +105,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);
}