diff options
author | David Nugent <davidn@FreeBSD.org> | 2000-06-18 02:39:17 +0000 |
---|---|---|
committer | David Nugent <davidn@FreeBSD.org> | 2000-06-18 02:39:17 +0000 |
commit | 229d81f87f201de453de7aeb4858c52b8ed6837c (patch) | |
tree | c45f310d46fb1fcdf1905dc3ce00a7020e7f9c13 /pw | |
parent | f20cc02ebf048cdff1e4d22c657afa20d725797a (diff) | |
download | pw-darwin-229d81f87f201de453de7aeb4858c52b8ed6837c.tar.gz pw-darwin-229d81f87f201de453de7aeb4858c52b8ed6837c.tar.zst pw-darwin-229d81f87f201de453de7aeb4858c52b8ed6837c.zip |
Be a little more strict about handling command line args. This allows user and
group names like 'help' 'mod' 'user' 'group' etc. to work correctly without
requiring the -n style invocation.
PR: misc/17069
Diffstat (limited to 'pw')
-rw-r--r-- | pw/pw.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -153,14 +153,16 @@ main(int argc, char *argv[]) } else break; } - else if ((tmp = getindex(Modes, argv[1])) != -1) + else if (mode == -1 && (tmp = getindex(Modes, argv[1])) != -1) mode = tmp; - else if ((tmp = getindex(Which, argv[1])) != -1) + else if (which == -1 && (tmp = getindex(Which, argv[1])) != -1) which = tmp; - else if ((tmp = getindex(Combo1, argv[1])) != -1 || (tmp = getindex(Combo2, argv[1])) != -1) { + else if ((mode == -1 && which == -1) && + ((tmp = getindex(Combo1, argv[1])) != -1 || + (tmp = getindex(Combo2, argv[1])) != -1)) { which = tmp / M_NUM; mode = tmp % M_NUM; - } else if (strcmp(argv[1], "help") == 0) + } else if (strcmp(argv[1], "help") == 0 && argv[2] == NULL) cmdhelp(mode, which); else if (which != -1 && mode != -1) addarg(&arglist, 'n', argv[1]); |