summaryrefslogtreecommitdiffstats
path: root/usr.bin/killall
diff options
context:
space:
mode:
authorcsjp <csjp@FreeBSD.org>2014-01-17 04:16:39 +0000
committercsjp <csjp@FreeBSD.org>2014-01-17 04:16:39 +0000
commitd34702f4cf296668c3511d6c1728b1fa03f3951d (patch)
tree3cf002b98160d069645fd24dfd89e5a2e7e31d4c /usr.bin/killall
parent0728e663d0c574d0fe21026527eb2bd27388371c (diff)
downloadFreeBSD-src-d34702f4cf296668c3511d6c1728b1fa03f3951d.zip
FreeBSD-src-d34702f4cf296668c3511d6c1728b1fa03f3951d.tar.gz
Re-work r260800 to include other signals which start with 'I'
such as ILL, INFO etc.. Submitted by: delphij MFC after: 2 weeks
Diffstat (limited to 'usr.bin/killall')
-rw-r--r--usr.bin/killall/killall.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/usr.bin/killall/killall.c b/usr.bin/killall/killall.c
index 13dc556..b171630 100644
--- a/usr.bin/killall/killall.c
+++ b/usr.bin/killall/killall.c
@@ -90,6 +90,7 @@ nosig(char *name)
int
main(int ac, char **av)
{
+ char **saved_av;
struct kinfo_proc *procs, *newprocs;
struct stat sb;
struct passwd *pw;
@@ -210,16 +211,8 @@ main(int ac, char **av)
case 'z':
zflag++;
break;
- case 'I':
- /*
- * NB: do not confuse -INT with -I
- */
- if (strncmp(*av, "INT", 3) != 0) {
- Iflag = 1;
- break;
- }
- /* FALLTHROUGH */
default:
+ saved_av = av;
if (isalpha((unsigned char)**av)) {
if (strncasecmp(*av, "SIG", 3) == 0)
*av += 3;
@@ -229,8 +222,14 @@ main(int ac, char **av)
sig = p - sys_signame;
break;
}
- if (!sig)
- nosig(*av);
+ if (!sig) {
+ if (**saved_av == 'I') {
+ av = saved_av;
+ Iflag = 1;
+ break;
+ } else
+ nosig(*av);
+ }
} else if (isdigit((unsigned char)**av)) {
sig = strtol(*av, &ep, 10);
if (!*av || *ep)
OpenPOWER on IntegriCloud