summaryrefslogtreecommitdiffstats
path: root/arguments.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2021-08-20 20:01:27 +0100
committerThomas Adam <thomas@xteddy.org>2021-08-20 20:01:27 +0100
commit944fde7c57c4f3caebb04cfc3943a81ee9729de8 (patch)
treeadaf9710dee065de66e40cd12359a403bd3f6dea /arguments.c
parent41822ef782122be42305c0c21e2f166077d09002 (diff)
parent6cbc83c6a64f272575aac1ee32cc0a0b1cb75c7b (diff)
Merge branch 'obsd-master' into master
Diffstat (limited to 'arguments.c')
-rw-r--r--arguments.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/arguments.c b/arguments.c
index 3ce0e680..f6f6ecaf 100644
--- a/arguments.c
+++ b/arguments.c
@@ -63,6 +63,17 @@ args_find(struct args *args, u_char flag)
return (RB_FIND(args_tree, &args->tree, &entry));
}
+/* Create an empty arguments set. */
+struct args *
+args_create(void)
+{
+ struct args *args;
+
+ args = xcalloc(1, sizeof *args);
+ RB_INIT(&args->tree);
+ return (args);
+}
+
/* Parse an argv and argc into a new argument set. */
struct args *
args_parse(const char *template, int argc, char **argv)
@@ -70,12 +81,11 @@ args_parse(const char *template, int argc, char **argv)
struct args *args;
int opt;
- args = xcalloc(1, sizeof *args);
-
optreset = 1;
optind = 1;
optarg = NULL;
+ args = args_create();
while ((opt = getopt(argc, argv, template)) != -1) {
if (opt < 0)
continue;