From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 31525 invoked from network); 14 Dec 2022 08:35:58 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 14 Dec 2022 08:35:58 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1671006959; b=cAgfVA/XZHf3DY5KT9Y0QilAwB29lo2zR/CFt3ZuObYsTisPg+ueA0JRu9FMbpFFOQgWqxNQxR qWL1L0lCjVBWRN5RvpTMILXNwSxeFXuF/jaMpOnujbhRffh2NehZ0w6/KGCPuVEe0qfvh8Vo6l J2dny+puxJ18mN/109QES3Ee9zQGEqOje7IZheY4U13DqwrF+3erkkhfRrjYlO1dPppM5dihCJ uk9xGz+hpSLyhnDlWr17u8dtg/jjNMfg9RuIhIVNQgJ4WTunF3yKXw21DbZdTJUCZEk1DYxmNe FnFCtuPCgPCSjGeIw3IWVntPivDjpJbYW2/SNeZ9mQ/4Zg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ua1-f41.google.com) smtp.remote-ip=209.85.222.41; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1671006959; bh=nmTp4GKkBnY/5DhuMxlS82ycfEYVDDL4qVvTzVaoqRw=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=ZlJ5k6/pmONCVOLg7yuL1gu6Tmw8jegaYeU0iT4udK0USuAT2tZktvFzWwQzJGtAbkUVvAnBg8 MRhhYBp7MJaxxG9IrT1z+Tzszjk+bvGQMwEMFi7v2P1PlYDefJpxzcTLUJkXEVPoVbVkPsvUk6 YJvoh88EAUmogDcXIrEO2zprRtYoArgwkocsC6yaRKLDiZoa4kPjkxVcslcr/XG8hJAdzARRYy BNxCljwXFyLQdiaT72KcMMBG8pAq6cOXFSL7kQWwR3nCvF5YOE+tKjB+TZHIv9WguioxIgE3XP bDykkpze+lNIbZDlIg1mNd+O4ZHWtTLi7jHqRrCgnuS73w==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=ZZuTgeOF6QQxI0UjNqTgPE8nuSA5MOyR1OcoI8LuYlg=; b=RYLUxCumufnajBT2L7BhWHkmsO pHv/ZBdU1KruBeoeaj9xEwb11AneEd7Uk3RqZoHFD5b4xTKLwDk0qAlmjEL1KT1pjAZT1DtabxmmX xRE+b3sNijUBB8hNvRckrl0ZOoKV6ItLKSth1ro4O7xBsusdkMlFAlUTOn3PKSrqQD8HTKM+9FzjF J+1JMcgtA2p4PgS6Tgh/iyKinAI3Y4cMGEnQfGnPx4SMAYBZiF0GFoU8Tp8vgoHlPA+ojFE7bAD0r kVnRfZpw4nrcZt6akFvuGZkwNY/lPT1AwJ/qTvW4hW+a+3OuwxshrOgvmOEJ/eAoL19A6V5nEYhpv O47hb/gg==; Received: by zero.zsh.org with local id 1p5NF8-0001ZG-1R; Wed, 14 Dec 2022 08:35:58 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ua1-f41.google.com) smtp.remote-ip=209.85.222.41; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-ua1-f41.google.com ([209.85.222.41]:38594) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1p5NEZ-0001Gh-FO; Wed, 14 Dec 2022 08:35:23 +0000 Received: by mail-ua1-f41.google.com with SMTP id c26so4729330uak.5 for ; Wed, 14 Dec 2022 00:35:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ZZuTgeOF6QQxI0UjNqTgPE8nuSA5MOyR1OcoI8LuYlg=; b=eqo6ZockAILKLIrzfCYLsDunt69oxUts76Ffd3E0FuFvl3QlPio76U6TOQJhdU9qfN nmg524zUAIMgNyuV1Ed3/Nf4JtH60KArEbF4nK2CsitjWk8vI0CY4Z7LI5u4WfLzPHLd C4kD6S0QECmaUFzAMk/VrkgOEvLVmij+rVQkw30Ww3XYaGoJfkP2vZHOQDuI6ry+jczk qux+uyfQVDHSKAu/KHKS5y3JroVmspNh8QgyM7LXkG9RN8YA8iwLIER6dAvwjOyktjln 95TebBCC0DrAftpe8Y0HEwEHZdO3Bi9CQ+lpK9Nr2OSCqjwUA9tgcIhAuu2rHEXPgay0 OfIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZZuTgeOF6QQxI0UjNqTgPE8nuSA5MOyR1OcoI8LuYlg=; b=6LWtuD4F2CYH79FvGe/cOBteQya54CvVYetIbMwYqys9s2BrJC1GBiDM6E8uFvyvWd 54d/WMqUBTR6a81ZysWYJLxjZg7FNeblMVBImVjxgEWIMOyd3PESxwrW6rwM2R60G0ZU jFXEOwnWb/WfhvA9pq2fZAtuvG5sLY2MpmGYaip5xTIFbCyuePLWwY8iYBd9F8e4EGii FzYV+dcycuxpbsL9X0yM+00yZauns9RthaOMujF9Jn0D2i+7PReDIz9YtdamxFRaYzB7 AgmQ9kHedWOhtwjWQXjjeSqa3Zi3fEHSZwujWgVNyOCmis+zUCRk+6snun0cIfp+8fX1 Gm+g== X-Gm-Message-State: ANoB5pncvkk4KhZgTIqd4l3mSFa+vC41ObOdevVzJS/8OCf0x2jUWz+q sA/86JBIe72QXhI2GU7IPe7gPlZDAyI610+V8bgQm3Z7olI= X-Google-Smtp-Source: AA0mqf6LyJn99F2VsUmUhsKzN/Yo415zqVNjrIAAmCiiLU76kdguuaCTOezomZUrFQaLgRk6QpIHKiAneIgnFBZawFc= X-Received: by 2002:ab0:15a5:0:b0:411:336c:b7be with SMTP id i34-20020ab015a5000000b00411336cb7bemr54687405uae.6.1671006922135; Wed, 14 Dec 2022 00:35:22 -0800 (PST) MIME-Version: 1.0 References: <1939278e-89c4-812d-5dea-e836568dc100@inlv.org> In-Reply-To: From: Philippe Altherr Date: Wed, 14 Dec 2022 09:35:10 +0100 Message-ID: Subject: Re: EXIT trap not executed on error To: Bart Schaefer Cc: Zsh hackers list , Martijn Dekker Content-Type: multipart/mixed; boundary="00000000000003504a05efc59eeb" X-Seq: 51211 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --00000000000003504a05efc59eeb Content-Type: multipart/alternative; boundary="00000000000003504605efc59ee9" --00000000000003504605efc59ee9 Content-Type: text/plain; charset="UTF-8" I had a look at the errflag logic and admittedly I don't understand everything/much. However I noticed that other places that restore the errflag preserve the ERRFLAG_INT bit. Maybe the same should be done here, even though it may not be that important as we are on the exit path anyway. I also wondered whether signals.c/dotraps would be a better place for the new logic. It already has special logic for SIGEXIT and this way the new logic would be guaranteed to apply to all runs of SIGEXIT. Philippe --00000000000003504605efc59ee9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I had a look at the errflag=C2=A0logic an= d admittedly=C2=A0I don't understand everything/much. However I noticed= that other places that restore the errflag preserve the=C2=A0ERRFLAG_INT bi= t. Maybe the same should be done here, even though it may not be that impor= tant as we are on the exit path anyway.

I also wondered = whether=C2=A0signals.c/dotraps=C2= =A0would be a better place for the new logic. It already has special logic = for SIGEXIT and this way the new logic would be guaranteed=C2=A0to apply to= all runs of SIGEXIT.

Philippe

--00000000000003504605efc59ee9-- --00000000000003504a05efc59eeb Content-Type: text/plain; charset="US-ASCII"; name="patch-run-exit-trap-also-on-error.txt" Content-Disposition: attachment; filename="patch-run-exit-trap-also-on-error.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lbne77ov0 ZGlmZiAtLWdpdCBhL1NyYy9zaWduYWxzLmMgYi9TcmMvc2lnbmFscy5jCmluZGV4IGE2MTM2ODU1 NC4uNjg0Mzk0NTIwIDEwMDY0NAotLS0gYS9TcmMvc2lnbmFscy5jCisrKyBiL1NyYy9zaWduYWxz LmMKQEAgLTEzMDYsOSArMTMwNiw3IEBAIGRvdHJhcGFyZ3MoaW50IHNpZywgaW50ICpzaWd0ciwg dm9pZCAqc2lnZm4pCiAgICAgICogZnVuY3Rpb24gd2lsbCB0ZXN0IGZvciB0aGlzLCBidXQgdGhp cyB3YXkgd2Uga2VlcCBzdGF0dXMgZmxhZ3MgKgogICAgICAqIGludGFjdCB3aXRob3V0IHdvcmtp bmcgdG9vIGhhcmQuICBTcGVjaWFsIGNhc2VzIChlLmcuIGNhbGxpbmcgICoKICAgICAgKiBhIHRy YXAgZm9yIFNJR0lOVCBhZnRlciB0aGUgZXJyb3IgZmxhZyB3YXMgc2V0KSBhcmUgaGFuZGxlZCAg ICAqCi0gICAgICogYnkgdGhlIGNhbGxpbmcgY29kZS4gIChQV1MgMTk5NS8wNi8wOCkuCQkJICAg ICAgKgotICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICoKLSAgICAgKiBUaGlzIHRlc3QgaXMgbm93IHJlcGxpY2F0ZWQg aW4gZG90cmFwKCkuICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAqIGJ5IHRoZSBjYWxs aW5nIGNvZGUuICAoUFdTIDE5OTUvMDYvMDgpLgkJCSAgICAgICovCiAgICAgaWYgKCgqc2lndHIg JiBaU0lHX0lHTk9SRUQpIHx8ICFzaWdmbiB8fCBlcnJmbGFnKQogICAgICAgICByZXR1cm47CiAK QEAgLTE0NzEsMjMgKzE0NjksMjAgQEAgZG90cmFwKGludCBzaWcpCiAgICAgfSBlbHNlCiAJZnVu Y3Byb2cgPSBzaWdsaXN0c1tzaWddOwogCi0gICAgLyoKLSAgICAgKiBDb3BpZWQgZnJvbSBkb3Ry YXBhcmdzKCkuCi0gICAgICogKEluIGZhY3QsIHRoZSBnYWluIGZyb20gZHVwbGljYXRpbmcgdGhp cyBhcHBlYXJzIHRvIGJlIHZpcnR1YWxseQotICAgICAqIHplcm8uICBOb3Qgc3VyZSB3aHkgaXQn cyBoZXJlLikKLSAgICAgKi8KLSAgICBpZiAoKHNpZ3RyYXBwZWRbc2lnXSAmIFpTSUdfSUdOT1JF RCkgfHwgIWZ1bmNwcm9nIHx8IGVycmZsYWcpCi0JcmV0dXJuOwotCiAgICAgZG9udF9xdWV1ZV9z aWduYWxzKCk7CiAKLSAgICBpZiAoc2lnID09IFNJR0VYSVQpCisgICAgaW50IHByZXZfZXJyZmxh ZyA9IGVycmZsYWc7CisgICAgaWYgKHNpZyA9PSBTSUdFWElUKSB7CiAJKytpbl9leGl0X3RyYXA7 CisJZXJyZmxhZyA9IDA7CisgICAgfQogCiAgICAgZG90cmFwYXJncyhzaWcsIHNpZ3RyYXBwZWQr c2lnLCBmdW5jcHJvZyk7CiAKLSAgICBpZiAoc2lnID09IFNJR0VYSVQpCisgICAgaWYgKHNpZyA9 PSBTSUdFWElUKSB7CisJZXJyZmxhZyA9IHByZXZfZXJyZmxhZyB8IChlcnJmbGFnICYgRVJSRkxB R19JTlQpOwogCS0taW5fZXhpdF90cmFwOworICAgIH0KIAogICAgIHJlc3RvcmVfcXVldWVfc2ln bmFscyhxKTsKIH0K --00000000000003504a05efc59eeb--