From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: zsh-workers-return-43666-ml=inbox.vuxu.org@zsh.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,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 e12baf93 for ; Tue, 9 Oct 2018 20:21:12 +0000 (UTC) Received: (qmail 27214 invoked by alias); 9 Oct 2018 20:20:58 -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: 43666 Received: (qmail 1087 invoked by uid 1010); 9 Oct 2018 20:20:58 -0000 X-Qmail-Scanner-Diagnostics: from know-smtprelay-omc-2.server.virginmedia.net by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(80.0.253.66):SA:0(-1.9/5.0):. Processed in 3.959105 secs); 09 Oct 2018 20:20:58 -0000 X-Envelope-From: p.w.stephenson@ntlworld.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | X-Originating-IP: [86.16.88.158] X-Authenticated-User: p.w.stephenson@ntlworld.com X-Spam: 0 X-Authority: v=2.3 cv=Ab+f4UfG c=1 sm=1 tr=0 a=MiHCjVqLJ44lE3bxSlffFQ==:117 a=MiHCjVqLJ44lE3bxSlffFQ==:17 a=kj9zAlcOel0A:10 a=x7bEGLp0ZPQA:10 a=S6TsYJopTjXlxHu0XagA:9 a=CjuIK1q_8ugA:10 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ntlworld.com; s=meg.feb2017; t=1539115754; bh=PzKrfnOjBdhZ0IlFc+N/rmFy/Vts3kJR9ZVGBWWXXco=; h=Date:From:To:Subject:In-Reply-To:References; b=F9KAEZ6DoqAw4P+z/ImNmtulEgtSvM2NeKDMlCXGKRbzNNYc1U6S7MRHd3v2qD9G9 ELoKTBtUxC5EJG93OkIU+b4+Denw0UtwEjCnss5uWrNMw/ASjuFeS3+F3Xrh/ovRed 3IdbQhU1soQygLZVU8VVKPN2f7hvFaxPy8XP5qVT3c/8xOA4AV84PAfp+DAqZH7Ego BoVNEn5bN4JnP5tyaFyYxq7Sc9aLHxiOfzmpiKDPTUkVIeXJ79X+rsDcI9LXyGJg2C uEZOD5sxsbNwibPap2qUl1u/3Iu5p/oF9+RhbUXbRmqTJrQFzh6U4hiwojPxEzUGDz qbdbCTqHTsCrQ== Date: Tue, 9 Oct 2018 21:09:12 +0100 From: Peter Stephenson To: Subject: Re: [Bug] Exiting shell from function called by trap handler always produces status 0 Message-ID: <20181009210912.7a17eb77@pws-HP.localdomain> In-Reply-To: <20181009131646eucas1p2eb07d8fa34e97de25db60d6a56c584a4~b8x2n0O1S2407324073eucas1p2z@eucas1p2.samsung.com> References: <20181009084918eucas1p27dedda10d51beb773ba9175967912d2c~b5IUtvcVK3037630376eucas1p2R@eucas1p2.samsung.com> <205ea5e4-4dc9-2ebf-9437-0822195e1a9a@inlv.org> <20181009131646eucas1p2eb07d8fa34e97de25db60d6a56c584a4~b8x2n0O1S2407324073eucas1p2z@eucas1p2.samsung.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfI+YdiOeOL5B0U2HO8bf5dv8QpuomBDjIUtpuuK7HtKv5a/uYheT/wfVPc84s9Nwa5/k6rgFQbixszT7vymgnEz+TVvCaA4O2Kdp1QzuaJmb9ucbpx6T /KZhc3KeB3V9HWOc9VgR7lVHv4DNOaHtwLpZY85BQC94COktiYskSzLyzvzoa2va71mSPBHVyoewuQ== Here's a slight improvement --- we can "exit 0" even if the last command status is non-zero. pws diff --git a/Src/builtin.c b/Src/builtin.c index e01e035cc..8dcdcc024 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -5723,7 +5723,7 @@ int exit_val; void realexit(void) { - exit(exit_val ? exit_val : lastval); + exit((shell_exiting || exit_pending) ? exit_val : lastval); } /* As realexit(), but call _exit instead */ @@ -5732,7 +5732,7 @@ realexit(void) void _realexit(void) { - _exit(exit_val ? exit_val : lastval); + _exit((shell_exiting || exit_pending) ? exit_val : lastval); } /* exit the shell. val is the return value of the shell. *