diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-08-18 08:33:48 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-08-18 08:33:48 +0000 |
commit | 01dd3162ff90f8c337257f2a489e8c59decdbcab (patch) | |
tree | 3318d16ccac1e1a5d29c8d929d3406ee4943136e /winsup/utils/mkpasswd.c | |
parent | c7aa4aec427d17bae3c9d87bc2c34b6ba63a1592 (diff) | |
download | cygnal-01dd3162ff90f8c337257f2a489e8c59decdbcab.tar.gz cygnal-01dd3162ff90f8c337257f2a489e8c59decdbcab.tar.bz2 cygnal-01dd3162ff90f8c337257f2a489e8c59decdbcab.zip |
* mkgroup.c (main): Always unset environment variable POSIXLY_CORRECT.
Keep track of optional argumnts and fix up optind afterwards.
* mkpasswd.c (main): Ditto.
Diffstat (limited to 'winsup/utils/mkpasswd.c')
-rw-r--r-- | winsup/utils/mkpasswd.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/winsup/utils/mkpasswd.c b/winsup/utils/mkpasswd.c index 305842562..d7b999967 100644 --- a/winsup/utils/mkpasswd.c +++ b/winsup/utils/mkpasswd.c @@ -719,6 +719,7 @@ main (int argc, char **argv) char *disp_username = NULL; char passed_home_path[PATH_MAX]; BOOL in_domain; + int optional_args = 0; passed_home_path[0] = '\0'; if (!isatty (1)) @@ -740,6 +741,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) { @@ -756,6 +758,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) @@ -852,6 +856,7 @@ skip: return 1; } + optind += optional_args; if (argv[optind]) { fprintf (stderr, |