From 0a80579ed18b4004a99b5dc062ce874c0bdc3201 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 26 Aug 2021 09:46:39 +0100 Subject: 49307 with doc update: POSIX_TRAPS fix. With POSIX_TRAPS set, an ignored signal stays ignored when entering a subshell. --- Src/exec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Src/exec.c') diff --git a/Src/exec.c b/Src/exec.c index 49ff88b80..79d8064b6 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -1033,7 +1033,8 @@ entersubsh(int flags, struct entersubsh_ret *retp) if (!(flags & ESUB_KEEPTRAP)) for (sig = 0; sig < SIGCOUNT; sig++) - if (!(sigtrapped[sig] & ZSIG_FUNC)) + if (!(sigtrapped[sig] & ZSIG_FUNC) && + !(isset(POSIXTRAPS) && (sigtrapped[sig] & ZSIG_IGNORED))) unsettrap(sig); monitor = isset(MONITOR); job_control_ok = monitor && (flags & ESUB_JOB_CONTROL) && isset(POSIXJOBS); -- cgit 1.4.1