From ebcea98eca33b8894d29545f1a46331d03f3913a Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 31 Aug 2017 16:54:19 +0100 Subject: 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. --- Test/C03traps.ztst | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'Test') 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 -- cgit 1.4.1