about summary refs log tree commit diff
path: root/Src/exec.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-11-10 10:37:27 +0000
committerPeter Stephenson <pws@zsh.org>2016-11-10 10:37:27 +0000
commit5f1700755f12677b608adef88c39e08df99c41f2 (patch)
treec194e75d628380726e2649df40b70d41c6377beb /Src/exec.c
parent370b278565126a0abf3382ba10965e7a1090e7f8 (diff)
downloadzsh-5f1700755f12677b608adef88c39e08df99c41f2.tar.gz
zsh-5f1700755f12677b608adef88c39e08df99c41f2.tar.xz
zsh-5f1700755f12677b608adef88c39e08df99c41f2.zip
39901: No EXIT trap on LHS of pipeline.
There is a special case if the LHS is a shell construct.
Add unit tests for both cases.
Diffstat (limited to 'Src/exec.c')
-rw-r--r--Src/exec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Src/exec.c b/Src/exec.c
index c0ed2c475..a01a633db 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1888,6 +1888,10 @@ execpline2(Estate state, wordcode pcode,
 		entersubsh(((how & Z_ASYNC) ? ESUB_ASYNC : 0)
 			   | ESUB_PGRP | ESUB_KEEPTRAP);
 		close(synch[1]);
+		if (sigtrapped[SIGEXIT])
+		{
+		    unsettrap(SIGEXIT);
+		}
 		execcmd_exec(state, &eparams, input, pipes[1], how, 1);
 		_exit(lastval);
 	    }