about summary refs log tree commit diff
path: root/Src/builtin.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-08-06 19:51:04 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-08-06 19:51:04 +0000
commitc4f33330f6797d0c199abf522f79c3ccac88ed55 (patch)
treede3b9cbfb26c313b774a3df1b63c8191dcebc775 /Src/builtin.c
parentd026334a3b25a2150d59a3f53a20d39ddb96ab56 (diff)
downloadzsh-c4f33330f6797d0c199abf522f79c3ccac88ed55.tar.gz
zsh-c4f33330f6797d0c199abf522f79c3ccac88ed55.tar.xz
zsh-c4f33330f6797d0c199abf522f79c3ccac88ed55.zip
25409: fix eval's use of lastval
Diffstat (limited to 'Src/builtin.c')
-rw-r--r--Src/builtin.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index 99daf866b..e1378d901 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -4717,17 +4717,19 @@ bin_eval(UNUSED(char *nam), char **argv, UNUSED(Options ops), UNUSED(int func))
 
     prog = parse_string(zjoin(argv, ' ', 1));
     if (prog) {
-	lastval = 0;
-
-	execode(prog, 1, 0);
+	if (wc_code(*prog->prog) != WC_LIST) {
+	    /* No code to execute */
+	    lastval = 0;
+	} else {
+	    execode(prog, 1, 0);
 
-	if (errflag)
-	    lastval = errflag;
+	    if (errflag)
+		lastval = errflag;
+	}
     } else {
 	lastval = 1;
     }
 
-
     errflag = 0;
     scriptname = oscriptname;
     ineval = oineval;