zsh-users
 help / color / mirror / code / Atom feed
* Bug with continue?
@ 2023-03-28  9:32 Felipe Contreras
  2023-03-28 10:17 ` Peter Stephenson
  0 siblings, 1 reply; 3+ messages in thread
From: Felipe Contreras @ 2023-03-28  9:32 UTC (permalink / raw)
  To: Zsh Users

Hi,

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?

-- 
Felipe Contreras


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Bug with continue?
  2023-03-28  9:32 Bug with continue? Felipe Contreras
@ 2023-03-28 10:17 ` Peter Stephenson
  2023-03-28 11:28   ` Peter Stephenson
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Stephenson @ 2023-03-28 10:17 UTC (permalink / raw)
  To: Zsh Users

> 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.)

pws


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Bug with continue?
  2023-03-28 10:17 ` Peter Stephenson
@ 2023-03-28 11:28   ` Peter Stephenson
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Stephenson @ 2023-03-28 11:28 UTC (permalink / raw)
  To: Zsh Users

> On 28/03/2023 11:17 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.)

The bug I'm thinking of is zsh-workers/51125, though it looks like I
committed the fix under zsh-workers/51134.  That was about wheter
"! return" should invert the status of the return given it's already
returned by the time that would happen.  This is similar, but looks
like it's not the same.

This one is a little weird as if the immediately next statement is a
print it doesn't get executed.  I'm suspecting some subtlety with handling
retflag.

pws


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-03-28 11:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-28  9:32 Bug with continue? Felipe Contreras
2023-03-28 10:17 ` Peter Stephenson
2023-03-28 11:28   ` Peter Stephenson

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).