Op 13-09-16 om 14:29 schreef Greg Wooledge: > On Tue, Sep 13, 2016 at 05:11:05AM +0200, Martijn Dekker wrote: >> The command >> >> kill -l 0 >> >> outputs T. I would expect EXIT as T is not a valid signal or >> pseudosignal name. Since T is the last letter of EXIT, I suspect a typo >> somewhere. > > My guess is it's just printing the string with the first 3 characters > removed (SIGHUP -> HUP, SIGINT -> INT, EXIT -> T).
You're right. The fix is pretty simple, too. Patch attached. - M.
diff --git a/builtins/common.c b/builtins/common.c index b100ebe..2bfdf85 100644 --- a/builtins/common.c +++ b/builtins/common.c @@ -785,7 +785,7 @@ display_signal_list (list, forcecols) #if defined (JOB_CONTROL) /* POSIX.2 says that `kill -l signum' prints the signal name without the `SIG' prefix. */ - printf ("%s\n", (this_shell_builtin == kill_builtin) ? name + 3 : name); + printf ("%s\n", (this_shell_builtin == kill_builtin && STREQN (name, "SIG", 3)) ? name + 3 : name); #else printf ("%s\n", name); #endif