Parameter expansion stopped working in recent ash/dash

Andrey Repin
Thu Feb 9 12:08:45 GMT 2023

Greetings, Brian Inglis!

> On 2023-02-07 12:01, Brian Inglis via Cygwin wrote:
>> On 2023-02-07 10:19, Brian Inglis via Cygwin wrote:
>>> On 2023-02-07 05:07, Andrey Repin via Cygwin wrote:
>>>> In the attached script, that I always run using dash, the expansion is
>>>> supposed to strip leading/trailing spaces from provided parameter.
>>>> The upgrade that took place after which the expansion stopped working is
>>>> libsolv:   - dash- -> dash-0.5.12-1.any
>>>> Downgrading to restored the expected behavior.
>>>> I failed to find anything relevant in the dash 0.5.12 patch notes, but perhaps
>>>> community could help?

>>> Looks like something in dash broke space trimming of any sort: see attached >> script and logs.
>>> I will see what upstream has to say for themselves, or about Cygwin.

>> Stupid errors in test script, didn't actually run trim3 anyway, redone, and that > and updated logs attached.
>> It appears the locale dependent [[:space:]] regexp no longer works but using > escapes generated by echo still does, see corrected trim3, so perhaps use those > for now, if you can, while I follow this upstream.
>> You may need to add escape sequences for any locale dependent spacing characters > to the space string, so please let us know if there are.

> Hi Andrey,

> A new test release 0.5.12-2 has been uploaded so please install and test
> that behaves as expected in past releases.

At least it no longer clears the input in real world tests.
So that's good for me now.

> The issue was caused as glibc fnmatch and glob now support locale dependent
> named character classes, equivalents, etc. as in grep, so the build now
> defaults to using the local libc fnmatch and glob, without any config test for which libc or supported features.

That's proving importance of proper testing yet again. >.<

> Cygwin winsup and newlib libc fnmatch and glob do not support those locale
> dependent named character classes, equivalents, etc. as in grep, so those
> features are no longer provided in dash by default.

> The new test release disables the build from using libc fnmatch and glob
> and use those provided by dash (possibly by or from gnulib), so those
> classes again appear to work as expected: see attached log.

> If there are no further negative reports by this weekend, I will replace
> the current stable release with this latest test release.

With best regards,
Andrey Repin
Thursday, February 9, 2023 15:05:35

Sorry for my terrible english...

More information about the Cygwin mailing list