mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
kill: Use POSIX str2sig()
Reviewed by: imp, kib, des, jilles Pull Request: https://github.com/freebsd/freebsd-src/pull/1696
This commit is contained in:
parent
f942680e8e
commit
36679f7d7b
1 changed files with 8 additions and 32 deletions
|
|
@ -48,12 +48,12 @@
|
|||
|
||||
static void nosig(const char *);
|
||||
static void printsignals(FILE *);
|
||||
static int signame_to_signum(const char *);
|
||||
static void usage(void) __dead2;
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
char signame[SIG2STR_MAX];
|
||||
long pidl;
|
||||
pid_t pid;
|
||||
int errors, numsig, ret;
|
||||
|
|
@ -74,12 +74,12 @@ main(int argc, char *argv[])
|
|||
usage();
|
||||
numsig = strtol(*argv, &ep, 10);
|
||||
if (!**argv || *ep)
|
||||
errx(2, "illegal signal number: %s", *argv);
|
||||
errx(2, "invalid signal number: %s", *argv);
|
||||
if (numsig >= 128)
|
||||
numsig -= 128;
|
||||
if (numsig <= 0 || numsig >= sys_nsig)
|
||||
if (sig2str(numsig, signame) < 0)
|
||||
nosig(*argv);
|
||||
printf("%s\n", sys_signame[numsig]);
|
||||
printf("%s\n", signame);
|
||||
return (0);
|
||||
}
|
||||
printsignals(stdout);
|
||||
|
|
@ -92,24 +92,14 @@ main(int argc, char *argv[])
|
|||
warnx("option requires an argument -- s");
|
||||
usage();
|
||||
}
|
||||
if (strcmp(*argv, "0")) {
|
||||
if ((numsig = signame_to_signum(*argv)) < 0)
|
||||
nosig(*argv);
|
||||
} else
|
||||
if (strcmp(*argv, "0") == 0)
|
||||
numsig = 0;
|
||||
else if (str2sig(*argv, &numsig) < 0)
|
||||
nosig(*argv);
|
||||
argc--, argv++;
|
||||
} else if (**argv == '-' && *(*argv + 1) != '-') {
|
||||
++*argv;
|
||||
if (isalpha(**argv)) {
|
||||
if ((numsig = signame_to_signum(*argv)) < 0)
|
||||
nosig(*argv);
|
||||
} else if (isdigit(**argv)) {
|
||||
numsig = strtol(*argv, &ep, 10);
|
||||
if (!**argv || *ep)
|
||||
errx(2, "illegal signal number: %s", *argv);
|
||||
if (numsig < 0)
|
||||
nosig(*argv);
|
||||
} else
|
||||
if (str2sig(*argv, &numsig) < 0)
|
||||
nosig(*argv);
|
||||
argc--, argv++;
|
||||
}
|
||||
|
|
@ -143,20 +133,6 @@ main(int argc, char *argv[])
|
|||
return (errors);
|
||||
}
|
||||
|
||||
static int
|
||||
signame_to_signum(const char *sig)
|
||||
{
|
||||
int n;
|
||||
|
||||
if (strncasecmp(sig, "SIG", 3) == 0)
|
||||
sig += 3;
|
||||
for (n = 1; n < sys_nsig; n++) {
|
||||
if (!strcasecmp(sys_signame[n], sig))
|
||||
return (n);
|
||||
}
|
||||
return (-1);
|
||||
}
|
||||
|
||||
static void
|
||||
nosig(const char *name)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue