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 11758 invoked from network); 28 Mar 2023 13:17:28 -0000
Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368)
by inbox.vuxu.org with ESMTPUTF8; 28 Mar 2023 13:17:28 -0000
ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1680009448;
b=kqOlpXL9sZOaYtUmSC1bpcTa/HvwHsJ56kt5XIzZbpq2DHHWWMzj3+cTBF1j4IoIenetgtKIlk
jB2FB3XVnFX9JFvevt2QzQcjr/SI1xfuDJxC59uCpzEGQX0mAUGryAif/fgI6o/SoBZhFJ3ALP
CIcJmjqiFwxxfd/wpUGlDRrW9qGSPr3ZKvVdyNdIAP1oB0p+gRVCOz80UTPn2sGXvqVhOMMJIn
hdy0V0rRP5emLJlfKQymib4aQlJ15NWaHcUjBFs75X4caL93dHXJkX79+Jwb1zaaatpGKy2Ux3
WyPkNLKQpS4In/xNaGsrhj3PhjwOB0VOYTxx7zgSLda7kQ==;
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=1680009448;
bh=ynZqQQsuBCJBnR1yV4yIDJxu4WXa9FCVUbJNu9ALzwI=;
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:To:From:Date:DKIM-Signature:
DKIM-Signature;
b=kINvZmV9gjewWBpvz3NYrZX2xDyDZxXUE+vuD93otORt6KBsTT9pTvcfyG+DRygw5P9h7egvL6
MslSRT826kfZMYh5kbkmi7GynVUS1qfWBtSvO5U+eH33UW8tETZok2u8JMPzG6FuK1XUZY07GP
LzcysnnBAkxsAN+5ZO1QXVOCekUBBPftJTYbTcmYRiKZAg9yYJELZv/Q9A37vE3KEBDtMHnhMu
QUWZ3Z5B8ConA1LlGQrn/RnpBDuJiUIQFPcpCKfRqWhnOGlnZEowcvLZmmCTEej7zDHRGeBQse
ZMhacLNjE1InrAjWmQFm9Xwz+kGCsuB8HGXXKQhI9Ai8VA==;
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:To:From:
Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From:
Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID;
bh=40mrepM6NrzixY0qeFmdHVJUIoycEqB541wEfmXZXR0=; b=LOX6IipyntH0qUg4YkFhVd4eb+
qLBkCSrCbMc9E3LUg+oqPvgOTkmudUSEodB4fpLupqrsryo8z1K6IMCOsBVTthhF2Nqi7yBui6EEA
yHXZn43oQSdPTZo0QOK38zClBgAEi7ku7erhtuLPSfgdXkk4SYBCRX8DbVTIjLstqVugjr/BceEGG
NP34IUpeKSlaZcTKzGgu+QpYCc8NZrkzOETjw8i0zKxQ+QqApT9f+GmRGhJ7RErJwyrNqsh5oQ+qO
bkoR66svKjvFr8m0dx6D+6Nf/MwBIcJLO7iDzGlo5y3hPctix8NBI57aKhsB3po4roQO2YiUTDYnb
8QCDq1kg==;
Received: by zero.zsh.org with local
id 1ph9CZ-0008BH-NS;
Tue, 28 Mar 2023 13:17:27 +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]:57202)
by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
id 1ph9C1-0007s3-0b;
Tue, 28 Mar 2023 13:16:54 +0000
Received: from [212.54.57.82] (helo=smtp3.tb.ukmail.iss.as9143.net)
by smtpq2.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1)
(envelope-from
)
id 1ph9C0-0008Tl-Pr
for zsh-workers@zsh.org; Tue, 28 Mar 2023 15:16:52 +0200
Received: from oxbe24.tb.ukmail.iss.as9143.net ([172.25.160.155])
by smtp3.tb.ukmail.iss.as9143.net with ESMTP
id h9C0pULa9vML8h9C0p4YdB; Tue, 28 Mar 2023 15:16:52 +0200
X-Env-Mailfrom: p.w.stephenson@ntlworld.com
X-Env-Rcptto: zsh-workers@zsh.org
X-SourceIP: 172.25.160.155
X-CNFS-Analysis: v=2.4 cv=NuYXMeRJ c=1 sm=1 tr=0 ts=6422e8c4 cx=a_exe
a=7eg3RIOFpSGgz8rG3xBEDw==:117 a=1DWFKdCB1IcA:10 a=IkcTkHD0fZMA:10
a=pGLkceISAAAA:8 a=DYzSpe1dp6OR_ZO7hREA:9 a=QEXdDO2ut3YA:10
a=75Kt_H3ikK-EkTT1woid: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=1680009412;
bh=ynZqQQsuBCJBnR1yV4yIDJxu4WXa9FCVUbJNu9ALzwI=;
h=Date:From:To:In-Reply-To:References:Subject;
b=FnvLnsbOWs4HgdXIp6JPtGZuCqUAmTUt3vXlPiWgGaVzkUFNcjB4JrjlVa9hmbrdv
AbrnLU4K10VKiV9nBufbeemg1I/SyfQ6+31jcmYJ3hQdGM+lg5hdTaSg2ofX4Gud1x
uug0NyAJO7tJsfXgTORj2VLuKLdAccqZt0vve9fRczAHl3FuwZqsiFhw5u6ZqiTiAd
52BSFJS8EQ0oWasSeymq15g+FWgo4eQ7jFnEjfrr2Iw1ldSAvpSiaj04xcfXI6L7cH
/mPBWlu8JdA3677Hp6cZCCJA/Bfsit5uY0ILIbVaDUWfkjD/ZbHSaEumV0iYiTjcnh
GQjIvFyzizMtw==
Date: Tue, 28 Mar 2023 14:16:51 +0100 (BST)
From: Peter Stephenson
To: zsh workers
Message-ID: <701977041.1402683.1680009412504@mail.virginmedia.com>
In-Reply-To:
References:
<16795430.3614208.1679998628194@mail.virginmedia.com>
Subject: Re: Bug with continue?
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: 147.161.224.167
X-Originating-Client: open-xchange-appsuite
X-CMAE-Envelope: MS4xfH0NRW8OspT3JHSZoczKx5JM1vyk0dh39Waf/VJbXGkPEladCpvTnIhJFgT3zODyvX46k06aeLIwrDtqV6RTSMOe40tN3FgF29fEztw9KOsP4gMCjFNz
/iWknFkoDctgB7S53FljbrsEut88k9W0pz3rYjRo3XP81N0hdjtzxh+QpeUCWk4sq1iE1A+UMLFG72dkpSDPm6v9Hv3uaQ5ossTdAibrY7zbdysIWUaI00re
X-Seq: 51608
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 28/03/2023 12:19 Mikael Magnusson wrote:
> Replacing continue && with ! continue || has the same effect,
Missed this one, thanks.
pws
diff --git a/Src/exec.c b/Src/exec.c
index 3330bbce8..4328975b9 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1491,7 +1491,7 @@ execlist(Estate state, int dont_change_job, int exiting)
* we find a sublist followed by ORNEXT. */
if ((ret = ((WC_SUBLIST_FLAGS(code) & WC_SUBLIST_SIMPLE) ?
execsimple(state) :
- execpline(state, code, Z_SYNC, 0)))) {
+ execpline(state, code, Z_SYNC, 0))) || breaks) {
state->pc = next;
code = *state->pc++;
next = state->pc + WC_SUBLIST_SKIP(code);
@@ -1524,7 +1524,7 @@ execlist(Estate state, int dont_change_job, int exiting)
* we find a sublist followed by ANDNEXT. */
if (!(ret = ((WC_SUBLIST_FLAGS(code) & WC_SUBLIST_SIMPLE) ?
execsimple(state) :
- execpline(state, code, Z_SYNC, 0)))) {
+ execpline(state, code, Z_SYNC, 0))) || breaks) {
state->pc = next;
code = *state->pc++;
next = state->pc + WC_SUBLIST_SKIP(code);
diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst
index b3aea1055..d57085798 100644
--- a/Test/A01grammar.ztst
+++ b/Test/A01grammar.ztst
@@ -982,3 +982,39 @@ F:its expectations.
}
fn
1:! does not affect return status of explicit return
+
+ msg=unset
+ for x in 1 2 3 4 5; do
+ continue && msg=set && print Not executed
+ print Not executed, neither.
+ done
+ print $msg
+0:continue causes immediate continuation
+>unset
+
+ msg=unset
+ () {
+ return && msg=set && print Not executed
+ print Not executed, not nor neither.
+ }
+ print $msg
+0:return causes immediate return
+>unset
+
+ msg=unset
+ for x in 1 2 3 4 5; do
+ ! continue || msg=set && print Not executed
+ print Not executed, neither.
+ done
+ print $msg
+0:! continue causes immediate continuation
+>unset
+
+ msg=unset
+ () {
+ ! return || msg=set && print Not executed
+ print Not executed, not nor neither.
+ }
+ print $msg
+0:! return causes immediate return
+>unset