diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2008-08-06 19:51:04 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2008-08-06 19:51:04 +0000 |
commit | c4f33330f6797d0c199abf522f79c3ccac88ed55 (patch) | |
tree | de3b9cbfb26c313b774a3df1b63c8191dcebc775 /Src | |
parent | d026334a3b25a2150d59a3f53a20d39ddb96ab56 (diff) | |
download | zsh-c4f33330f6797d0c199abf522f79c3ccac88ed55.tar.gz zsh-c4f33330f6797d0c199abf522f79c3ccac88ed55.tar.xz zsh-c4f33330f6797d0c199abf522f79c3ccac88ed55.zip |
25409: fix eval's use of lastval
Diffstat (limited to 'Src')
-rw-r--r-- | Src/builtin.c | 14 |
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; |