about summary refs log tree commit diff
path: root/Src/signals.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-08-01 13:53:43 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-08-01 13:53:43 +0000
commit506d73299cd5559b4d303260f2f05901886c937a (patch)
tree3333c417cb5813457fd8c7d5d4eeadfda4f42240 /Src/signals.c
parent5e7e797ca90cd1c1b7ab54d39118f0b7469f348f (diff)
downloadzsh-506d73299cd5559b4d303260f2f05901886c937a.tar.gz
zsh-506d73299cd5559b4d303260f2f05901886c937a.tar.xz
zsh-506d73299cd5559b4d303260f2f05901886c937a.zip
fix problems with trapreturn, in particular in source inside trap
Diffstat (limited to 'Src/signals.c')
-rw-r--r--Src/signals.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Src/signals.c b/Src/signals.c
index 022ee8fb5..61fff64a2 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -1085,6 +1085,7 @@ dotrapargs(int sig, int *sigtr, void *sigfn)
     int trapret = 0;
     int obreaks = breaks;
     int oretflag = retflag;
+    int otrapreturn = trapreturn;
     int isfunc;
     int traperr;
 
@@ -1183,6 +1184,7 @@ dotrapargs(int sig, int *sigtr, void *sigfn)
 	trapret = trapreturn + 1;
     }
     traperr = errflag;
+    trapreturn = otrapreturn;
     execrestore();
     lexrestore();