summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/loop.c1
-rw-r--r--Test/A01grammar.ztst8
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