From 9649ef588882419046f66a7a7db18f3cff8106f9 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 5 Dec 2016 13:49:45 +0000 Subject: 40100: ERR_EXIT and ERR_RETURN test for anonymous functions. Should trigger on non-zero status at end of function even if behaviour is suppressed by code inside the function at the point the status is set. --- ChangeLog | 4 ++++ Test/C03traps.ztst | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index b912821e2..3e06cfa83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2016-12-05 Peter Stephenson + * 40100: Test/C03traps.ztst: Check ERR_EXIT and ERR_RETURN on + anonymous functions: should exit on function return even if + suppressed internally. + * 40097: Src/exec.c, Test/C03traps.ztst: Don't trigger ERR_EXIT or ERR_RETURN on non-zero status after current shell group, either. diff --git a/Test/C03traps.ztst b/Test/C03traps.ztst index dc386a44e..7bc0b486d 100644 --- a/Test/C03traps.ztst +++ b/Test/C03traps.ztst @@ -713,6 +713,17 @@ F:Must be tested with a top-level script rather than source or function ) 1:ERR_EXIT triggered by status 1 within { } + (setopt err_exit + () { + false && true + print Still functioning + false && true + } + print OK + ) +1:ERR_EXIT triggered by status 1 at end of anon func +>Still functioning + if zmodload zsh/system 2>/dev/null; then ( trap 'echo TERM; exit 2' TERM -- cgit 1.4.1