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