From 06e721c313699c7b80a1e500c3098b236fbdbb59 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Fri, 18 Sep 2020 03:03:39 +0200 Subject: [PATCH] data/signals.c: fix empty SIGINT/SIGPIPE messages src/cmd/ksh93/data/signals.c includes two checks for the JOBS identifier; if it is not defined then the interactive shell's background job signal messages for SIGINT and SIGPIPE are empty. The cause was that the "jobs.h" header, which defines that ID, was not #included in signals.c. This commit adds that #include. (ksh 93u+, ksh 93v- and ksh2020 all have this bug as well.) Before: $ sleep 30 & [1] 86430 $ kill -s INT "$!" [1] + sleep 30 & $ After: $ sleep 30 & [1] 86445 $ kill -s INT "$!" [1] + Interrupt sleep 30 & $ --- NEWS | 3 +++ src/cmd/ksh93/data/signals.c | 1 + 2 files changed, 4 insertions(+) diff --git a/NEWS b/NEWS index d430fb986..b529deaf6 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,9 @@ Any uppercase BUG_* names are modernish shell bug IDs. 7 will now move the cursor seven positions to the left. In vi control mode, this would be entered as: 7 . +- When a background job on an interactive shell received SIGINT or SIGPIPE, the + job termination message was empty. It now shows "Interrupt" or "Broken Pipe". + 2020-09-14: - Corrected rounding of floating point values by ksh's printf %f formatting diff --git a/src/cmd/ksh93/data/signals.c b/src/cmd/ksh93/data/signals.c index 43efc5f6e..4d27c4537 100644 --- a/src/cmd/ksh93/data/signals.c +++ b/src/cmd/ksh93/data/signals.c @@ -18,6 +18,7 @@ * * ***********************************************************************/ #include "defs.h" +#include "jobs.h" #if defined(SIGCLD) && !defined(SIGCHLD) # define SIGCHLD SIGCLD