summary refs log tree commit diff
path: root/src/eval.c
diff options
context:
space:
mode:
authorherbert <herbert@gondor.apana.org.au>2005-03-25 23:39:14 +1100
committerHerbert Xu <herbert@gondor.apana.org.au>2005-09-26 18:33:05 +1000
commit4a7e4ba5cb8bfd267fee12a848bd3292580bcdfa (patch)
tree9834b4d48049cf5f6fb5debac80f5fdb2f3dfd62 /src/eval.c
parentEliminate first null termination in setvar. (diff)
downloaddash-4a7e4ba5cb8bfd267fee12a848bd3292580bcdfa.tar.gz
dash-4a7e4ba5cb8bfd267fee12a848bd3292580bcdfa.zip
Turn evalskip into a bit field.
This allows SKIPEVAL and SKIPFUNC to coexist which is needed for eval return 1.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c
index 7f00b21..793d4c9 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -324,8 +324,8 @@ out:
 		dotrap();
 	if (flags & EV_EXIT)
 		exraise(EXEXIT);
-	if ((checkexit & exitstatus) && evalskip != SKIPFILE)
-		evalskip = SKIPEVAL;
+	if ((checkexit & exitstatus))
+		evalskip |= SKIPEVAL;
 }
 
 
@@ -931,8 +931,7 @@ cmddone:
 	commandname = savecmdname;
 	exsig = 0;
 	handler = savehandler;
-	if (evalskip == SKIPEVAL)
-		evalskip = 0;
+	evalskip &= ~SKIPEVAL;
 
 	return i;
 }
@@ -974,8 +973,7 @@ funcdone:
 	shellparam = saveparam;
 	handler = savehandler;
 	INTON;
-	if (evalskip == SKIPFUNC)
-		evalskip = 0;
+	evalskip &= ~SKIPFUNC;
 	return e;
 }