From 7ca2b06501b463641426d009a54b21b89b8ca9ee Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Wed, 15 Jan 2020 18:02:33 +0000 Subject: 45304: Do execute the always block even when the try/always block itself is the last command. Fixes the test added in the previous commit (workers/45305). --- ChangeLog | 5 +++++ Src/loop.c | 2 +- Test/A01grammar.ztst | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 643352dfe..675342647 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2020-01-16 Daniel Shahaf + + * 45304: Src/loop.c, Test/A01grammar.ztst: Do execute the always + block even when the try/always block itself is the last command. + 2020-01-15 dana * 45292: Test/D02glob.ztst: Add regression test for macOS stat(2) diff --git a/Src/loop.c b/Src/loop.c index 538afb8dc..57858a150 100644 --- a/Src/loop.c +++ b/Src/loop.c @@ -742,7 +742,7 @@ exectry(Estate state, int do_exec) /* The :try clause */ ++try_tryflag; - execlist(state, 1, do_exec); + execlist(state, 1, 0); --try_tryflag; /* Don't record errflag here, may be reset. However, */ diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst index 1e0e9a04e..0dbf468f6 100644 --- a/Test/A01grammar.ztst +++ b/Test/A01grammar.ztst @@ -930,5 +930,5 @@ F:Note that the behaviour of 'exit' inside try-list inside a function is unspeci >or false $ZTST_testdir/../Src/zsh -fc '{ ( ) } always { echo foo }' --f:exec last command optimization inhibited for try/always +0:exec last command optimization inhibited for try/always >foo -- cgit 1.4.1