From 3d47e34527bdc68c49eae6ee3b33506f8badbce5 Mon Sep 17 00:00:00 2001 From: herbert Date: Mon, 28 Feb 2005 21:06:29 +1100 Subject: Replaced EXEVAL with SKIPEVAL. --- src/eval.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'src/eval.c') diff --git a/src/eval.c b/src/eval.c index 29db5c1..3288837 100644 --- a/src/eval.c +++ b/src/eval.c @@ -325,8 +325,8 @@ out: dotrap(); if (flags & EV_EXIT) exraise(EXEXIT); - if (checkexit & exitstatus) - exraise(EXEVAL); + if ((checkexit & exitstatus) && evalskip != SKIPFILE) + evalskip = SKIPEVAL; } @@ -711,14 +711,12 @@ evalcommand(union node *cmd, int flags) int spclbltin; int execcmd; int status; - int oldlvl; char **nargv; /* First expand the arguments. */ TRACE(("evalcommand(0x%lx, %d) called\n", (long)cmd, flags)); setstackmark(&smark); back_exitstatus = 0; - oldlvl = shlvl; cmdentry.cmdtype = CMDBUILTIN; cmdentry.u.cmd = &bltin; @@ -874,12 +872,6 @@ bail: i = exception; if (i == EXEXIT) goto raise; - if (i == EXEVAL) { - if (oldlvl == shlvl) - goto trap; - else - goto raise; - } status = 2; j = 0; @@ -895,7 +887,6 @@ bail: raise: longjmp(handler->loc, 1); } -trap: FORCEINTON; } break; @@ -941,6 +932,8 @@ cmddone: commandname = savecmdname; exsig = 0; handler = savehandler; + if (evalskip == SKIPEVAL) + evalskip = 0; return i; } -- cgit 1.4.1