aboutsummaryrefslogtreecommitdiff
path: root/bin/kill/kill.c
diff options
context:
space:
mode:
authorTim J. Robbins <tjr@FreeBSD.org>2002-06-13 08:07:20 +0000
committerTim J. Robbins <tjr@FreeBSD.org>2002-06-13 08:07:20 +0000
commit08de34ac0165ebafd0788b57a39554e33b27e645 (patch)
tree9c12f0741b05756268930c250b401cb0afd8dc7f /bin/kill/kill.c
parent83952a118bc4eee82f98f470f8e3cb600520889f (diff)
downloadsrc-08de34ac0165ebafd0788b57a39554e33b27e645.tar.gz
src-08de34ac0165ebafd0788b57a39554e33b27e645.zip
Support the "--" end of options marker, useful to disambiguate between
signal numbers and process groups (negative pid arguments), and required by SUSv3.
Notes
Notes: svn path=/head/; revision=98158
Diffstat (limited to 'bin/kill/kill.c')
-rw-r--r--bin/kill/kill.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/bin/kill/kill.c b/bin/kill/kill.c
index 48198c82e5d3..865c9db426b3 100644
--- a/bin/kill/kill.c
+++ b/bin/kill/kill.c
@@ -103,7 +103,7 @@ main(int argc, char *argv[])
} else
numsig = 0;
argc--, argv++;
- } else if (**argv == '-') {
+ } else if (**argv == '-' && *(*argv + 1) != '-') {
++*argv;
if (isalpha(**argv)) {
if ((numsig = signame_to_signum(*argv)) < 0)
@@ -119,6 +119,9 @@ main(int argc, char *argv[])
argc--, argv++;
}
+ if (argc > 0 && strncmp(*argv, "--", 2) == 0)
+ argc--, argv++;
+
if (argc == 0)
usage();