From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 7cb28dc3 for ; Sun, 24 Nov 2019 22:52:02 +0000 (UTC) Received: (qmail 27911 invoked by alias); 24 Nov 2019 05:55:01 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 44922 Received: (qmail 27685 invoked by uid 1010); 24 Nov 2019 05:55:01 -0000 X-Qmail-Scanner-Diagnostics: from kahlil.inlv.org by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.0/25635. spamassassin: 3.4.2. Clear:RC:0(37.59.109.123):SA:0(-1.9/5.0):. Processed in 2.755661 secs); 24 Nov 2019 05:55:01 -0000 X-Envelope-From: martijn@inlv.org X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at inlv.org does not designate permitted sender hosts) Subject: Re: Bug with traps and exit To: zsh-workers@zsh.org References: <3859b4bf-08ba-62d5-f00a-3ec4e67caf95@inlv.org> From: Martijn Dekker Message-ID: Date: Sun, 24 Nov 2019 06:54:18 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <3859b4bf-08ba-62d5-f00a-3ec4e67caf95@inlv.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: nl Content-Transfer-Encoding: 7bit Op 22-01-19 om 00:00 schreef Martijn Dekker: > Found a strange issue with traps and 'exit'. > > Test script: > > trap 'printf $1; exit; printf $2' USR1 > fn() { > printf 1 > kill -s usr1 $$ > printf 2 > } > printf 0 > fn A B > printf 3 > > Every shell outputs 01A, except zsh, which outputs 01A2. > > This means the execution of the fn() function is not interrupted. The > USR1 trap executes 'exit' and does not execute the rest of the trap > action, but instead of exiting the shell, zsh continues to execute fn() > and then exits. > > Confirmed down to zsh 5.0.8 (didn't test earlier versions). A related issue (possibly the same?) with a much simpler test case: trap 'echo SIGINT; trap - INT; kill -s INT $$; echo woops' INT kill -s INT $$ zsh prints 'woops', but shouldn't. - M. -- modernish -- harness the shell https://github.com/modernish/modernish