Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [BUG] ignored trap and subshell
> On 24 August 2021 at 17:23 Vincent Lefevre <vincent@xxxxxxxxxx> wrote:
> The zshmisc(1) man page says:
>
> ( list )
> Execute list in a subshell. Traps set by the trap builtin are
> reset to their default values while executing list.
>
> However, with "emulate sh", ignored traps should still be ignored
> in the subshell according to POSIX, and zsh 5.8 fails do conform:
I think this is straightforward. POSIXTRAPS is clearly the option for the job.
pws
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);
Messages sorted by:
Reverse Date,
Date,
Thread,
Author