summaryrefslogtreecommitdiff
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.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;