diff options
author | Peter Stephenson <pws@zsh.org> | 2017-08-31 16:54:19 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2017-08-31 16:54:19 +0100 |
commit | ebcea98eca33b8894d29545f1a46331d03f3913a (patch) | |
tree | 6b834b6b2ddc7ed63f947154c52d99bf648943a4 /Test | |
parent | 73514c40f68fd7f66b64317d6e26793d400414ac (diff) | |
download | zsh-ebcea98eca33b8894d29545f1a46331d03f3913a.tar.gz zsh-ebcea98eca33b8894d29545f1a46331d03f3913a.tar.xz zsh-ebcea98eca33b8894d29545f1a46331d03f3913a.zip |
Fix problem with ERR_RETURN.
It wasn't suppressed properly in the code following an if in some circumstances, in particular in initialsation scripts and also in a nested function where the caller had suppressed it.
Diffstat (limited to 'Test')
-rw-r--r-- | Test/C03traps.ztst | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Test/C03traps.ztst b/Test/C03traps.ztst index f8a12319a..f22962550 100644 --- a/Test/C03traps.ztst +++ b/Test/C03traps.ztst @@ -661,6 +661,40 @@ F:Must be tested with a top-level script rather than source or function >before-out >before-in + mkdir -p zdotdir + print >zdotdir/.zshenv ' + setopt norcs errreturn + fn() { + if false; then + print Bad + else + print Good + fi + print Better + } + fn + print In .zshenv' + ZDOTDIR=$PWD/zdotdir $ZTST_testdir/../Src/zsh -c 'true' +0:ERR_RETURN within initialisation code with special flags +>Good +>Better +>In .zshenv + + fn2() { + if false; then + print Bad + else + print Good + fi + } + fn() { + setopt err_return + fn2 || true + } + fn +0:ERR_RETURN in "else" branch in nested function +>Good + (setopt err_exit for x in y; do false && true |