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