Re: dash 0.5.9: break and continue bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux