From 6cbc83c6a64f272575aac1ee32cc0a0b1cb75c7b Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 20 Aug 2021 17:53:54 +0000 Subject: Add a way to create an empty arguments set. --- arguments.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'arguments.c') diff --git a/arguments.c b/arguments.c index dd92a952..91141b99 100644 --- a/arguments.c +++ b/arguments.c @@ -64,6 +64,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) @@ -71,12 +82,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; -- cgit