From 01dd3162ff90f8c337257f2a489e8c59decdbcab Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 18 Aug 2008 08:33:48 +0000 Subject: * mkgroup.c (main): Always unset environment variable POSIXLY_CORRECT. Keep track of optional argumnts and fix up optind afterwards. * mkpasswd.c (main): Ditto. --- winsup/utils/mkgroup.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'winsup/utils/mkgroup.c') diff --git a/winsup/utils/mkgroup.c b/winsup/utils/mkgroup.c index 48d682ee5..0b60ccaea 100644 --- a/winsup/utils/mkgroup.c +++ b/winsup/utils/mkgroup.c @@ -744,6 +744,7 @@ main (int argc, char **argv) int c, i; char *disp_groupname = NULL; BOOL in_domain; + int optional_args = 0; if (!isatty (1)) setmode (1, O_BINARY); @@ -768,6 +769,7 @@ main (int argc, char **argv) return 0; } + unsetenv ("POSIXLY_CORRECT"); /* To get optional arg processing right. */ while ((c = getopt_long (argc, argv, opts, longopts, NULL)) != EOF) switch (c) { @@ -784,6 +786,8 @@ main (int argc, char **argv) domlist[print_domlist].domain = (c == 'd' || c == 'D'); opt = optarg ?: argv[optind] && argv[optind][0] != '-' ? argv[optind] : NULL; + if (opt == argv[optind]) + ++optional_args; for (i = 0; i < print_domlist; ++i) if (domlist[i].domain == domlist[print_domlist].domain && ((!domlist[i].str && !opt) @@ -864,6 +868,7 @@ skip: return 1; } + optind += optional_args; if (argv[optind]) { fprintf (stderr, -- cgit v1.2.3