From b8ae885ab8252f37b149472c288cf0d1c812324d Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 25 Aug 2008 17:28:13 +0000 Subject: 25532: problem skipping assignments etc. with setopt ERREXIT --- Src/exec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Src/exec.c') diff --git a/Src/exec.c b/Src/exec.c index 4cd97b3df..aef97b216 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -1068,7 +1068,7 @@ execlist(Estate state, int dont_change_job, int exiting) lineno = lnp1 - 1; } - if (sigtrapped[SIGDEBUG] && isset(DEBUGBEFORECMD)) { + if (sigtrapped[SIGDEBUG] && isset(DEBUGBEFORECMD) && !intrap) { int oerrexit_opt = opts[ERREXIT]; opts[ERREXIT] = 0; noerrexit = 1; @@ -1086,11 +1086,12 @@ execlist(Estate state, int dont_change_job, int exiting) donedebug = isset(ERREXIT) ? 2 : 1; opts[ERREXIT] = oerrexit_opt; } else - donedebug = 0; + donedebug = intrap ? 1 : 0; if (ltype & Z_SIMPLE) { next = state->pc + WC_LIST_SKIP(code); - execsimple(state); + if (donedebug != 2) + execsimple(state); state->pc = next; goto sublist_done; } -- cgit 1.4.1