diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/loop.c | 1 | ||||
-rw-r--r-- | Test/A01grammar.ztst | 8 |
3 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index a1699ac24..0f41c18fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-10-10 Peter Stephenson <p.stephenson@samsung.com> + + * 39599: Src/loop.c, Test/A01grammar.ztst: Don't reset status + before "case" execution. + 2016-10-07 Daniel Shahaf <d.s@daniel.shahaf.name> * 39522: Doc/Zsh/contrib.yo: add-zsh-hook/add-zle-hook-widget: diff --git a/Src/loop.c b/Src/loop.c index 3b9d02144..94b61b7ed 100644 --- a/Src/loop.c +++ b/Src/loop.c @@ -592,7 +592,6 @@ execcase(Estate state, int do_exec) word = ecgetstr(state, EC_DUP, NULL); singsub(&word); untokenize(word); - lastval = 0; cmdpush(CS_CASE); while (state->pc < end) { diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst index 0b1085c3e..0e77f3ebc 100644 --- a/Test/A01grammar.ztst +++ b/Test/A01grammar.ztst @@ -757,6 +757,14 @@ >} >Stuff here + (exit 37) + case $? in + (37) echo $? + ;; + esac +0:case retains exit status for execution of cases +>37 + x=1 x=2 | echo $x echo $x |