From dbecc33067971cfd38a340e4435a163832f7601d Mon Sep 17 00:00:00 2001 From: jilles Date: Fri, 4 Feb 2011 16:40:50 +0000 Subject: [PATCH] Make sys_signame upper case. This matches the constants from with 'SIG' removed, which POSIX requires kill and trap to accept and 'kill -l' to write. 'kill -l', 'trap', 'trap -l' output is now upper case. In Turkish locales, signal names with an upper case 'I' are now accepted, while signal names with a lower case 'i' are no longer accepted, and the output of 'killall -l' now contains proper capital 'I' without dot instead of a dotted capital 'I'. --- bin/kill/kill.c | 2 +- bin/pkill/pkill.c | 2 +- bin/sh/trap.c | 6 ++-- lib/libc/gen/psignal.3 | 4 +-- lib/libc/gen/siglist.c | 62 +++++++++++++++++++-------------------- usr.bin/killall/killall.c | 2 +- usr.bin/truss/main.c | 2 +- 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/bin/kill/kill.c b/bin/kill/kill.c index edfc92832648..69ad0c8da24c 100644 --- a/bin/kill/kill.c +++ b/bin/kill/kill.c @@ -152,7 +152,7 @@ signame_to_signum(const char *sig) { int n; - if (!strncasecmp(sig, "sig", (size_t)3)) + if (!strncasecmp(sig, "SIG", (size_t)3)) sig += 3; for (n = 1; n < sys_nsig; n++) { if (!strcasecmp(sys_signame[n], sig)) diff --git a/bin/pkill/pkill.c b/bin/pkill/pkill.c index d9959c58060c..cd919762899c 100644 --- a/bin/pkill/pkill.c +++ b/bin/pkill/pkill.c @@ -156,7 +156,7 @@ main(int argc, char **argv) argv++; argc--; } else { - if (strncasecmp(p, "sig", 3) == 0) + if (strncasecmp(p, "SIG", 3) == 0) p += 3; for (i = 1; i < NSIG; i++) if (strcasecmp(sys_signame[i], p) == 0) diff --git a/bin/sh/trap.c b/bin/sh/trap.c index 048c75cdc19a..3ddd5a992e8c 100644 --- a/bin/sh/trap.c +++ b/bin/sh/trap.c @@ -101,12 +101,12 @@ sigstring_to_signum(char *sig) signo = atoi(sig); return ((signo >= 0 && signo < NSIG) ? signo : (-1)); - } else if (strcasecmp(sig, "exit") == 0) { + } else if (strcasecmp(sig, "EXIT") == 0) { return (0); } else { int n; - if (strncasecmp(sig, "sig", 3) == 0) + if (strncasecmp(sig, "SIG", 3) == 0) sig += 3; for (n = 1; n < sys_nsig; n++) if (sys_signame[n] && @@ -171,7 +171,7 @@ trapcmd(int argc, char **argv) out1str("trap -- "); out1qstr(trap[signo]); if (signo == 0) { - out1str(" exit\n"); + out1str(" EXIT\n"); } else if (sys_signame[signo]) { out1fmt(" %s\n", sys_signame[signo]); } else { diff --git a/lib/libc/gen/psignal.3 b/lib/libc/gen/psignal.3 index 5ad6ee2b3681..5986ffa0870e 100644 --- a/lib/libc/gen/psignal.3 +++ b/lib/libc/gen/psignal.3 @@ -28,7 +28,7 @@ .\" @(#)psignal.3 8.2 (Berkeley) 2/27/95 .\" $FreeBSD$ .\" -.Dd February 27, 1995 +.Dd February 4, 2011 .Dt PSIGNAL 3 .Os .Sh NAME @@ -89,7 +89,7 @@ indexed by recognized signal numbers. The external array .Va sys_signame is used similarly and -contains short, lower-case abbreviations for signals +contains short, upper-case abbreviations for signals which are useful for recognizing signal names in user input. The defined variable diff --git a/lib/libc/gen/siglist.c b/lib/libc/gen/siglist.c index 1ff1337d5fa3..d4abfaa8ea0f 100644 --- a/lib/libc/gen/siglist.c +++ b/lib/libc/gen/siglist.c @@ -37,37 +37,37 @@ __FBSDID("$FreeBSD$"); const char *const sys_signame[NSIG] = { "Signal 0", - "hup", /* SIGHUP */ - "int", /* SIGINT */ - "quit", /* SIGQUIT */ - "ill", /* SIGILL */ - "trap", /* SIGTRAP */ - "abrt", /* SIGABRT */ - "emt", /* SIGEMT */ - "fpe", /* SIGFPE */ - "kill", /* SIGKILL */ - "bus", /* SIGBUS */ - "segv", /* SIGSEGV */ - "sys", /* SIGSYS */ - "pipe", /* SIGPIPE */ - "alrm", /* SIGALRM */ - "term", /* SIGTERM */ - "urg", /* SIGURG */ - "stop", /* SIGSTOP */ - "tstp", /* SIGTSTP */ - "cont", /* SIGCONT */ - "chld", /* SIGCHLD */ - "ttin", /* SIGTTIN */ - "ttou", /* SIGTTOU */ - "io", /* SIGIO */ - "xcpu", /* SIGXCPU */ - "xfsz", /* SIGXFSZ */ - "vtalrm", /* SIGVTALRM */ - "prof", /* SIGPROF */ - "winch", /* SIGWINCH */ - "info", /* SIGINFO */ - "usr1", /* SIGUSR1 */ - "usr2" /* SIGUSR2 */ + "HUP", /* SIGHUP */ + "INT", /* SIGINT */ + "QUIT", /* SIGQUIT */ + "ILL", /* SIGILL */ + "TRAP", /* SIGTRAP */ + "ABRT", /* SIGABRT */ + "EMT", /* SIGEMT */ + "FPE", /* SIGFPE */ + "KILL", /* SIGKILL */ + "BUS", /* SIGBUS */ + "SEGV", /* SIGSEGV */ + "SYS", /* SIGSYS */ + "PIPE", /* SIGPIPE */ + "ALRM", /* SIGALRM */ + "TERM", /* SIGTERM */ + "URG", /* SIGURG */ + "STOP", /* SIGSTOP */ + "TSTP", /* SIGTSTP */ + "CONT", /* SIGCONT */ + "CHLD", /* SIGCHLD */ + "TTIN", /* SIGTTIN */ + "TTOU", /* SIGTTOU */ + "IO", /* SIGIO */ + "XCPU", /* SIGXCPU */ + "XFSZ", /* SIGXFSZ */ + "VTALRM", /* SIGVTALRM */ + "PROF", /* SIGPROF */ + "WINCH", /* SIGWINCH */ + "INFO", /* SIGINFO */ + "USR1", /* SIGUSR1 */ + "USR2" /* SIGUSR2 */ }; const char *const sys_siglist[NSIG] = { diff --git a/usr.bin/killall/killall.c b/usr.bin/killall/killall.c index 0a779fdcbc3d..2342a32aac86 100644 --- a/usr.bin/killall/killall.c +++ b/usr.bin/killall/killall.c @@ -218,7 +218,7 @@ main(int ac, char **av) break; default: if (isalpha((unsigned char)**av)) { - if (strncasecmp(*av, "sig", 3) == 0) + if (strncasecmp(*av, "SIG", 3) == 0) *av += 3; for (sig = NSIG, p = sys_signame + 1; --sig; ++p) diff --git a/usr.bin/truss/main.c b/usr.bin/truss/main.c index d25c4de1be34..58ed5d5df8e1 100644 --- a/usr.bin/truss/main.c +++ b/usr.bin/truss/main.c @@ -155,7 +155,7 @@ strsig(int sig) ret = NULL; if (sig > 0 && sig < NSIG) { int i; - asprintf(&ret, "sig%s", sys_signame[sig]); + asprintf(&ret, "SIG%s", sys_signame[sig]); if (ret == NULL) return (NULL); for (i = 0; ret[i] != '\0'; ++i)