zsh-workers
 help / color / mirror / code / Atom feed
From: Mikael Magnusson <mikachu@gmail.com>
To: Peter Stephenson <p.w.stephenson@ntlworld.com>
Cc: zsh workers <zsh-workers@zsh.org>
Subject: Re: Bug with continue?
Date: Tue, 28 Mar 2023 13:19:30 +0200	[thread overview]
Message-ID: <CAHYJk3TWqHFpdj7154VcrQW5oj8OQdC-+S9MQS+jWS6X3+XU3A@mail.gmail.com> (raw)
In-Reply-To: <16795430.3614208.1679998628194@mail.virginmedia.com>

On 3/28/23, Peter Stephenson <p.w.stephenson@ntlworld.com> wrote:
>> On 28/03/2023 10:32 Felipe Contreras <felipe.contreras@gmail.com> wrote:
>> I notice this works differently in zsh than in other shells:
>>
>>   for x in 1 2 3 4; do
>>     continue &&
>>     list="$list$x " &&
>>     echo "x: $x"
>>   done
>>   echo "list: $list"
>>
>> Why did the statement after `continue` gets evaluated?
>>
>> The original code tries to do something useful `case "$x" in 1)
>> continue ;; esac &&` but it shouldn't matter.
>>
>> I tried in bash, ksh, and dash, and all of them continue immediately,
>> except zsh.
>>
>> That can't be the desired behavior, can it?
>
> That looks like it probably ought to be regarded as a bug to me, yes ---
> I guess it's been hidden because the test "if this statement successfully
> jumped somewhere completely different then..." isn't spectacularly useful.
> However, it's not logically wrong, either.
>
> I think we had something a little similar to this recently; it usually
> boils down to something quite simple once you've found it and I'll
> have a look when I've got more time.  (Patch would go to zsh-workers.)

Some observations that may or may not be helpful:

Replacing continue && with ! continue || has the same effect,
chaining continue && false && a=b still does the assignment,
doing continue && { a=b } works, eg it does not do the assignment,
same with if continue; then ...

-- 
Mikael Magnusson


       reply	other threads:[~2023-03-28 11:19 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAMP44s3NCDJU9TcSuSgy5oH=-iK3zpP3Vc1+95d3n16uydHhFA@mail.gmail.com>
     [not found] ` <16795430.3614208.1679998628194@mail.virginmedia.com>
2023-03-28 11:19   ` Mikael Magnusson [this message]
2023-03-28 13:16     ` Peter Stephenson
2023-03-30  8:08       ` Felipe Contreras
     [not found]   ` <805138511.3622784.1680002886460@mail.virginmedia.com>
2023-03-28 11:56     ` Peter Stephenson
2023-03-29 10:02     ` Peter Stephenson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHYJk3TWqHFpdj7154VcrQW5oj8OQdC-+S9MQS+jWS6X3+XU3A@mail.gmail.com \
    --to=mikachu@gmail.com \
    --cc=p.w.stephenson@ntlworld.com \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).