1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-06-01 04:46:08 +02:00

24150: Exit status of null command should be exit status of last cmdsubst.

This commit is contained in:
Bart Schaefer 2007-12-09 23:53:33 +00:00
parent 6e58a1df8f
commit a124da3a4a
3 changed files with 18 additions and 2 deletions

View File

@ -1,6 +1,14 @@
2007-12-09 Barton E. Schaefer <schaefer@zsh.org>
* 24150 plus unposted: Src/exec.c, Test/D08cmdsubst.ztst:
Retain exit status of last non-assignment command substitution
across variable assignment processing so that, in the event of
no command word to execute, the exit status of the statement is
that of the last command substitution (per POSIX).
2007-12-09 Peter Stephenson <p.w.stephenson@ntlworld.com>
* 24197, Src/utils.c, Src/Modules/datetime.c: interface to
* 24197: Src/utils.c, Src/Modules/datetime.c: interface to
ztrftime() for insufficient memory was broken.
2007-12-08 Clint Adams <clint@zsh.org>

View File

@ -2339,7 +2339,7 @@ execcmd(Estate state, int input, int output, int how, int last1)
lastval = 0;
return;
} else {
cmdoutval = 0;
cmdoutval = lastval;
if (varspc)
addvars(state, varspc, 0);
if (errflag)

View File

@ -81,3 +81,11 @@
>third: file1.txt file2.txt
>fourth: *
>fifth: file1.txt file2.txt
$(exit 0) $(exit 3) || print $?
0:empty command uses exit value of last substitution
>3
X=$(exit 2) $(exit 0) || print $?
0:variable assignments processed after other substitutions
>2