summaryrefslogtreecommitdiff
path: root/walk.c
diff options
context:
space:
mode:
Diffstat (limited to 'walk.c')
-rw-r--r--walk.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/walk.c b/walk.c
index ed9f965..2f725d6 100644
--- a/walk.c
+++ b/walk.c
@@ -108,7 +108,7 @@ top: sigchk();
cond = oldcond;
break;
}
- if (setjmp(j.j))
+ if (sigsetjmp(j.j, 1))
break;
jbreak.jb = &j;
except(eBreak, jbreak, &e1);
@@ -131,7 +131,7 @@ top: sigchk();
Jbwrap j;
Estack e1, e2;
Edata jbreak;
- if (setjmp(j.j))
+ if (sigsetjmp(j.j, 1))
break;
jbreak.jb = &j;
except(eBreak, jbreak, &e1);
@@ -148,6 +148,7 @@ top: sigchk();
}
case nSubshell:
if (dofork(TRUE)) {
+ setsigdefaults(FALSE);
walk(n->u[0].p, FALSE);
rc_exit(getstatus());
}