dash.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* dash 0.5.9: break and continue bug
@ 2016-08-23 20:23 Zdenek Kaspar
  2016-08-23 20:41 ` Harald van Dijk
  0 siblings, 1 reply; 3+ messages in thread
From: Zdenek Kaspar @ 2016-08-23 20:23 UTC (permalink / raw)
  To: dash

Hi, I've noticed 0.5.9 does ignore break and continue statements, here
is simple reproducer:


one() {
    echo "  one"
    break
}

two() {
    echo "  two"
}

for i in 1 2
do
    echo "loop $i:"
    one
    two
done


dash-0.5.9:
$ dash dash-break-test
loop 1:
  one
  two
loop 2:
  one
  two

dash-0.5.8-4.fc24.x86_64:
$ dash dash-break-test
loop 1:
  one

HTH, Z.

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

* Re: dash 0.5.9: break and continue bug
  2016-08-23 20:23 dash 0.5.9: break and continue bug Zdenek Kaspar
@ 2016-08-23 20:41 ` Harald van Dijk
  2016-08-23 22:24   ` Zdenek Kaspar
  0 siblings, 1 reply; 3+ messages in thread
From: Harald van Dijk @ 2016-08-23 20:41 UTC (permalink / raw)
  To: Zdenek Kaspar, dash

On 23/08/16 22:23, Zdenek Kaspar wrote:
> Hi, I've noticed 0.5.9 does ignore break and continue statements, here
> is simple reproducer:
>
>
> one() {
>     echo "  one"
>     break
> }
>
> two() {
>     echo "  two"
> }
>
> for i in 1 2
> do
>     echo "loop $i:"
>     one
>     two
> done
>
>
> dash-0.5.9:
> $ dash dash-break-test
> loop 1:
>   one
>   two
> loop 2:
>   one
>   two
>
> dash-0.5.8-4.fc24.x86_64:
> $ dash dash-break-test
> loop 1:
>   one

break and continue now need to appear in the loop directly, they cannot 
be wrapped in a function any more. Although this is a visible change in 
behaviour, it is intentional:
   <https://www.mail-archive.com/dash%40vger.kernel.org/msg00929.html>

The standard is a bit unclear on how break and continue are meant to 
behave in these situations, as it refers to the "enclosing loop" without 
defining what counts and doesn't count as the enclosing loop, but the 
next version of the standard will make it clear that your script is not 
required to behave the way you expect:
   <http://austingroupbugs.net/view.php?id=842>

That said, shells are still allowed to treat your script the way you expect.

> HTH, Z.

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

* Re: dash 0.5.9: break and continue bug
  2016-08-23 20:41 ` Harald van Dijk
@ 2016-08-23 22:24   ` Zdenek Kaspar
  0 siblings, 0 replies; 3+ messages in thread
From: Zdenek Kaspar @ 2016-08-23 22:24 UTC (permalink / raw)
  To: Harald van Dijk, dash

On 08/23/2016 10:41 PM, Harald van Dijk wrote:
> On 23/08/16 22:23, Zdenek Kaspar wrote:
>> Hi, I've noticed 0.5.9 does ignore break and continue statements, here
>> is simple reproducer:
>>
>>
>> one() {
>>     echo "  one"
>>     break
>> }
>>
>> two() {
>>     echo "  two"
>> }
>>
>> for i in 1 2
>> do
>>     echo "loop $i:"
>>     one
>>     two
>> done
>>
>>
>> dash-0.5.9:
>> $ dash dash-break-test
>> loop 1:
>>   one
>>   two
>> loop 2:
>>   one
>>   two
>>
>> dash-0.5.8-4.fc24.x86_64:
>> $ dash dash-break-test
>> loop 1:
>>   one
> 
> break and continue now need to appear in the loop directly, they cannot
> be wrapped in a function any more. Although this is a visible change in
> behaviour, it is intentional:
>   <https://www.mail-archive.com/dash%40vger.kernel.org/msg00929.html>
> 
> The standard is a bit unclear on how break and continue are meant to
> behave in these situations, as it refers to the "enclosing loop" without
> defining what counts and doesn't count as the enclosing loop, but the
> next version of the standard will make it clear that your script is not
> required to behave the way you expect:
>   <http://austingroupbugs.net/view.php?id=842>
> 
> That said, shells are still allowed to treat your script the way you
> expect.
> 
>> HTH, Z.

Kinda sucks it does not abort execution completely and write some error
message then, because this can do some damage...

Anyway, thanks Harald for pointing me to changed SPEC where this (new)
behaviour is explained.

THX, Z.

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

end of thread, other threads:[~2016-08-23 22:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-23 20:23 dash 0.5.9: break and continue bug Zdenek Kaspar
2016-08-23 20:41 ` Harald van Dijk
2016-08-23 22:24   ` Zdenek Kaspar

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