Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[BUG] last builtin command in a subshell and trap



With zsh 5.8, the SIGPIPE trap is not executed when the builtin that
generates it is the last command of a subshell:

zira% ( trap 'echo PIPE >&2' PIPE; sleep 1; pwd; ) | :
zsh: write error: broken pipe

With an additional command (builtin), this is OK:

zira% ( trap 'echo PIPE >&2' PIPE; sleep 1; pwd; :; ) | :
zsh: write error: broken pipe
PIPE

I wonder whether this is related to the (undocumented?) optimization
that exec's the last command of a subshell / shell script (though
this is not applicable to builtins).

There is the same issue with mksh, but not with dash, ksh93, bash and
yash.

-- 
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)




Messages sorted by: Reverse Date, Date, Thread, Author