Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Bug with continue?
- X-seq: zsh-workers 51606
- From: Mikael Magnusson <mikachu@xxxxxxxxx>
- To: Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx>
- Cc: zsh workers <zsh-workers@xxxxxxx>
- Subject: Re: Bug with continue?
- Date: Tue, 28 Mar 2023 13:19:30 +0200
- Archived-at: <https://zsh.org/workers/51606>
- In-reply-to: <16795430.3614208.1679998628194@mail.virginmedia.com>
- List-id: <zsh-workers.zsh.org>
- References: <CAMP44s3NCDJU9TcSuSgy5oH=-iK3zpP3Vc1+95d3n16uydHhFA@mail.gmail.com> <16795430.3614208.1679998628194@mail.virginmedia.com>
On 3/28/23, Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx> wrote:
>> On 28/03/2023 10:32 Felipe Contreras <felipe.contreras@xxxxxxxxx> 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
Messages sorted by:
Reverse Date,
Date,
Thread,
Author