From d34702f4cf296668c3511d6c1728b1fa03f3951d Mon Sep 17 00:00:00 2001 From: csjp Date: Fri, 17 Jan 2014 04:16:39 +0000 Subject: Re-work r260800 to include other signals which start with 'I' such as ILL, INFO etc.. Submitted by: delphij MFC after: 2 weeks --- usr.bin/killall/killall.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'usr.bin/killall') 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) -- cgit v1.1