summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pw/pw.c
diff options
context:
space:
mode:
authordavidn <davidn@FreeBSD.org>2000-06-18 02:39:17 +0000
committerdavidn <davidn@FreeBSD.org>2000-06-18 02:39:17 +0000
commit4a7877f9e88a0fb91ab142195b282b3996abe6df (patch)
treea14a5497e8316b9c63a13bc5e846fde6ee9c3b89 /usr.sbin/pw/pw.c
parent1553afea7578052fa090a855d0825174fd36689d (diff)
downloadFreeBSD-src-4a7877f9e88a0fb91ab142195b282b3996abe6df.zip
FreeBSD-src-4a7877f9e88a0fb91ab142195b282b3996abe6df.tar.gz
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 'usr.sbin/pw/pw.c')
-rw-r--r--usr.sbin/pw/pw.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.sbin/pw/pw.c b/usr.sbin/pw/pw.c
index c17775f..6c070ac 100644
--- a/usr.sbin/pw/pw.c
+++ b/usr.sbin/pw/pw.c
@@ -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]);
OpenPOWER on IntegriCloud