about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-09-11 14:47:18 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-09-11 14:47:18 +0000
commitfb67cd46eafb1301844ed98f1c0e8d2cf8cbdee4 (patch)
tree22da1c3fc195ff6e753c5b0ff66c269ff9fdbe2d /Src
parent8bb15c139248c9a4c4c0b2a053444e24ab8fc4f4 (diff)
downloadzsh-fb67cd46eafb1301844ed98f1c0e8d2cf8cbdee4.tar.gz
zsh-fb67cd46eafb1301844ed98f1c0e8d2cf8cbdee4.tar.xz
zsh-fb67cd46eafb1301844ed98f1c0e8d2cf8cbdee4.zip
25643: keep DEBUG and ZERR traps in subshells
Diffstat (limited to 'Src')
-rw-r--r--Src/exec.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Src/exec.c b/Src/exec.c
index a78212888..f1c5788bf 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -869,7 +869,8 @@ entersubsh(int flags)
 
     if (!(flags & ESUB_KEEPTRAP))
 	for (sig = 0; sig < VSIGCOUNT; sig++)
-	    if (!(sigtrapped[sig] & ZSIG_FUNC))
+	    if (!(sigtrapped[sig] & ZSIG_FUNC) &&
+		sig != SIGDEBUG && sig != SIGZERR)
 		unsettrap(sig);
     monitor = isset(MONITOR);
     if (flags & ESUB_NOMONITOR)