getopt is not required to set optarg to NULL when there is no argument

and some do not, so set it explicitly each time.
This commit is contained in:
nicm 2020-03-17 16:02:38 +00:00 committed by Nicholas Marriott
parent 617136c234
commit 0c06409c9d

View File

@ -74,6 +74,7 @@ args_parse(const char *template, int argc, char **argv)
optreset = 1;
optind = 1;
optarg = NULL;
while ((opt = getopt(argc, argv, template)) != -1) {
if (opt < 0)
@ -83,6 +84,7 @@ args_parse(const char *template, int argc, char **argv)
return (NULL);
}
args_set(args, opt, optarg);
optarg = NULL;
}
argc -= optind;
argv += optind;