diff options
author | Peter Stephenson <pws@zsh.org> | 2016-12-05 11:21:01 +0000 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2016-12-05 11:21:01 +0000 |
commit | c03228f9ed28dfaa9ded49eabb93c04def5ac547 (patch) | |
tree | 7ea3ee905bf9531dce1e4e46b206ac9eb438d566 /Src/loop.c | |
parent | f71de84f1d9f7c2d63226a2e5534fc12d05ec716 (diff) | |
download | zsh-c03228f9ed28dfaa9ded49eabb93c04def5ac547.tar.gz zsh-c03228f9ed28dfaa9ded49eabb93c04def5ac547.tar.xz zsh-c03228f9ed28dfaa9ded49eabb93c04def5ac547.zip |
Extra case for ERR_RETURN and ERR_EXIT.
Don't trigger just because status is non-zero at end of complex shell construct as this may be a case we've already suppressed.
Diffstat (limited to 'Src/loop.c')
-rw-r--r-- | Src/loop.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Src/loop.c b/Src/loop.c index 367c0df5c..ae87b2f5f 100644 --- a/Src/loop.c +++ b/Src/loop.c @@ -208,6 +208,7 @@ execfor(Estate state, int do_exec) loops--; simple_pline = old_simple_pline; state->pc = end; + this_noerrexit = 1; return lastval; } @@ -335,6 +336,7 @@ execselect(Estate state, UNUSED(int do_exec)) loops--; simple_pline = old_simple_pline; state->pc = end; + this_noerrexit = 1; return lastval; } @@ -472,6 +474,7 @@ execwhile(Estate state, UNUSED(int do_exec)) popheap(); loops--; state->pc = end; + this_noerrexit = 1; return lastval; } @@ -523,6 +526,7 @@ execrepeat(Estate state, UNUSED(int do_exec)) loops--; simple_pline = old_simple_pline; state->pc = end; + this_noerrexit = 1; return lastval; } @@ -573,6 +577,7 @@ execif(Estate state, int do_exec) lastval = 0; } state->pc = end; + this_noerrexit = 1; return lastval; } @@ -682,6 +687,7 @@ execcase(Estate state, int do_exec) if (!anypatok) lastval = 0; + this_noerrexit = 1; return lastval; } |