From 03bfa8b5f639928fa3f003182a51ee263a8dcc91 Mon Sep 17 00:00:00 2001 From: Drazen Borkovic Date: Thu, 11 May 2017 19:49:52 -0700 Subject: Fix: "rc -e" exits if condition in while statement returns false the second time --- walk.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'walk.c') diff --git a/walk.c b/walk.c index 984a68c..67fbb8e 100644 --- a/walk.c +++ b/walk.c @@ -110,6 +110,7 @@ top: sigchk(); cond = oldcond; break; } + cond = oldcond; if (sigsetjmp(j.j, 1)) break; jbreak.jb = &j; @@ -117,12 +118,12 @@ top: sigchk(); do { Edata block; block.b = newblock(); - cond = oldcond; except(eArena, block, &e2); walk(n->u[1].p, TRUE); + cond = TRUE; testtrue = walk(n->u[0].p, TRUE); + cond = oldcond; unexcept(); /* eArena */ - cond = TRUE; } while (testtrue); cond = oldcond; unexcept(); /* eBreak */ -- cgit v1.2.3