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,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham
autolearn_force=no version=3.4.4
Received: (qmail 12808 invoked from network); 7 Dec 2022 17:28:16 -0000
Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368)
by inbox.vuxu.org with ESMTPUTF8; 7 Dec 2022 17:28:16 -0000
ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1670434096;
b=VrieHamuomCNNoL8l/nXn2YXAWaKQYdWYkdAR3+y3/SI/oDRm6BysHUd43Oqp6BXBwCPpspwI9
jvNEDM0/QBV83nkLdaCY5speKHVNk69dXnswUYpKjwp/vmkCWAfrMv9reJFkVxhiiHGi73iHT6
a/ILVC2job+o621DXHxBOKM8Gs3+T95LhkghSBKx9t1zxQi0zT8AM+gQKeFP/xnyeLPWhrIsda
iQQW4nUppvnGrmMhruR6hWUGeI57Bnrppiw6muNcg3kfvCchWym2+Rib2XDGb7ZMFJ/TLNc/5/
4QrWDHAnYsRdyZjycw0EGXFvxSvWmr1eCcdaSk6Pkc/TSQ==;
ARC-Authentication-Results: i=1; zsh.org;
iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97;
dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256;
dmarc=pass header.from=ntlworld.com;
arc=none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1670434096;
bh=XWFY23HTOKdTuxcM0pT9MqZOcZ4Wr2PP+Y+hKBDUZj4=;
h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help:
List-Id:Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:
References:In-Reply-To:Message-ID:Cc:To:From:Date:DKIM-Signature:
DKIM-Signature;
b=P6+ZAZKrlewjY6nIEktk7s3cmhRnnwYSwGPzaEtQvfmsbciul2qNC5rZjjGL2F83C7Ugau4XFp
zupV4oV9j6PMUMPv2hQwqiilDTwRvWNJ1UDVzOsRq2AlWw+956RAH86BSFmGem/7FTUYZa3Qyx
dnEGZm+/2Jil1UZNTjXKReIVNmgVkoKo8X5qRjW9EAsUN/1SZDr4f538r4kE4jSUf/ZNpo3GCt
iiwm+g9NuuUrOyXnIQeuDBm//D36AcbZahfAlEHGxJdKbRWfs5pZKu/4kveNaqj3CUChPRCcP+
0NHbn/ohjxR56Ak5RRVi8Sh8Z+MRtIs8mQvInCQYBoe8jQ==;
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-Transfer-Encoding:
Content-Type:MIME-Version:Subject:References:In-Reply-To:Message-ID:Cc:To:
From:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:
Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID;
bh=r7ErXqC5vjwMJ5Ytf4kkNFOMhOZjXODQ5hr4ySFaWRA=; b=Cu4TTOeQAFP+dzGvWWG1Ut5+PA
LVIaw90YT+4cS2iblMaCFtnS4p+FhZ0bXS3O88HONhvV3Kv65TYSognvab+J/GoPy/EAPMI8RVOst
IGKyyT3wGghyJQKf10yRik0RaRUTN2HzKFv50P+L5r/JuL932+tOvqaDoQ2dJAfEclezhQxYc0WRm
SZMIU92rIdLmR/VUG8pyCRtO0a3DiFSEP+/pn20IG9hbiRUy0vkw+WDBpTA+9isepvHs75T0L0FCk
xwQrpcq7jNu7m8wkqIrtwLQ98JBpL0OPcVYgkwSqQEbK7GPODehKw16UFR5EXChFZYCj/J4dlsCix
kFmLMigg==;
Received: by zero.zsh.org with local
id 1p2yDP-0005E5-PB;
Wed, 07 Dec 2022 17:28:15 +0000
Authentication-Results: zsh.org;
iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97;
dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256;
dmarc=pass header.from=ntlworld.com;
arc=none
Received: from smtpq2.tb.ukmail.iss.as9143.net ([212.54.57.97]:60786)
by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
id 1p2y7B-0003yR-Ju;
Wed, 07 Dec 2022 17:21:51 +0000
Received: from [212.54.57.80] (helo=smtp1.tb.ukmail.iss.as9143.net)
by smtpq2.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1)
(envelope-from
)
id 1p2y7B-0003c7-GL
for zsh-workers@zsh.org; Wed, 07 Dec 2022 18:21:49 +0100
Received: from oxbe19.tb.ukmail.iss.as9143.net ([172.25.160.150])
by smtp1.tb.ukmail.iss.as9143.net with ESMTP
id 2y7Bp9yAk5gto2y7BptfNZ; Wed, 07 Dec 2022 18:21:49 +0100
X-Env-Mailfrom: p.w.stephenson@ntlworld.com
X-Env-Rcptto: zsh-workers@zsh.org
X-SourceIP: 172.25.160.150
X-CNFS-Analysis: v=2.4 cv=cvhd0X0i c=1 sm=1 tr=0 ts=6390cbad cx=a_exe
a=5CzvcAr/sXcdrkwznnUi5w==:117 a=KHkPskhuMikA:10 a=IkcTkHD0fZMA:10
a=4R3cdCwsknMA:10 a=q2GGsy2AAAAA:8 a=NLZqzBF-AAAA:8 a=Um1rXTz4ACnveVVZJSAA:9
a=QEXdDO2ut3YA:10 a=z9dJwno5l634igLiVhy-:22
X-Authenticated-Sender: p.w.stephenson@ntlworld.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ntlworld.com;
s=meg.feb2017; t=1670433709;
bh=XWFY23HTOKdTuxcM0pT9MqZOcZ4Wr2PP+Y+hKBDUZj4=;
h=Date:From:To:Cc:In-Reply-To:References:Subject;
b=OjktFybXux1UliQ7oQ6J2HVFRuaBlPc13sKvEXdC2keQUQl0/oNTs0EVKCSoa4SVr
apBQDuIPryq74FZO7hSjOxC3a9N4rxHZvMvdqkuC4BLKIIxg1i21c2qm/VF1cWdJ83
XQo31sA/vMx027wGAoqr5WZPR92UEg8SOL8brhqlhGKqfd2XgnIOgh9A2StXbpgOdp
RVSxUohVOPTyY9QC+yTc6tb1mSr1tVLey62FkULV9jHdz21XRstg2lMMwfJtocKUAD
obhVhr81HE64fygVN/asG1TTAtNLinoXe+0+1baVAqA+u5XXI7bVFqWFPX5BvArBiS
Ro+X6S8jKYwzw==
Date: Wed, 7 Dec 2022 17:21:49 +0000 (GMT)
From: Peter Stephenson
To: zsh-workers@zsh.org
Cc: Michael Greenberg
Message-ID: <1195592041.2125811.1670433709206@mail.virginmedia.com>
In-Reply-To:
References:
<20221207084255.ykkg6cgzn4nqc73f@chazelas.org>
<20221207160113.ol3lcbm6p7xu3rru@chazelas.org>
<576947410.2118097.1670429780069@mail.virginmedia.com>
Subject: Re: `return` does not behave properly under `!`
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Priority: 3
Importance: Normal
X-Mailer: Open-Xchange Mailer
X-Originating-IP: 165.225.17.21
X-Originating-Client: open-xchange-appsuite
X-CMAE-Envelope: MS4xfGZyBq5bFfRRJlhrg/FumHmofaZnRvaBdMeSiUeEwTgnVRY1I7+HF/dVB01VpfdU4oT0UVmP6ZLgAs0KBmBKjhBQ0WkZKL0ges1KnwtjC6e9JIVWnCm0
CC1a1FdwFMcT4g4jusF76TKtByXLBMgndH3MraZgv5FCp9pvNRndDThUa+2qcRHGt1EnsJWz/YmohKLuf75QvG/nVd3qqv8hPSFq9BrS8btCIlOvNdVssyAI
W9BMe+Jo9H+9QVKmGHUymU/CDI4BZDRfzgPYLh0U0UY=
X-Seq: 51125
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:
> On 07/12/2022 17:06 Bart Schaefer wrote:
> On Wed, Dec 7, 2022 at 8:17 AM Peter Stephenson
> wrote:
> >
> > I agree with Michael's argument that shows that logically it
> > can't have an effect on the status, whatever you want.
>
> That's going to be ugly, because "return" is implemented as a builtin
> that propagates lastval. One level out, at the WC_SUBLIST_NOT
> implementation, it has no idea that lastval came from "return" rather
> than from any arbitrary sublist.
Not particularly, though I'm not actually that fussed, since I can't
really see the use of this beyond a bit of somewhat arbitrary state
purity.
pws
diff --git a/Src/exec.c b/Src/exec.c
index 1810fca5e..7049710c3 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1961,7 +1961,7 @@ execpline(Estate state, wordcode slcode, int how, int last1)
}
else
unqueue_signals();
- if ((slflags & WC_SUBLIST_NOT) && !errflag)
+ if ((slflags & WC_SUBLIST_NOT) && !errflag && !retflag)
lastval = !lastval;
}
if (!pline_level)
diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst
index 0312fe94e..b3aea1055 100644
--- a/Test/A01grammar.ztst
+++ b/Test/A01grammar.ztst
@@ -970,3 +970,15 @@ F:its expectations.
0:Non-interactive shell command input is line buffered
>Value is first
>Value is second
+
+ fn() {
+ ! false
+ }
+0:! inverts the status of implicit return
+
+ fn () {
+ false
+ ! return
+ }
+ fn
+1:! does not affect return status of explicit return