On 2/14/18 10:44 PM, Harald van Dijk wrote:
On 2/14/18 9:03 PM, Harald van Dijk wrote:
On 13/02/2018 14:53, Denys Vlasenko wrote:
$ >'\zzzz'
$ >'\wwww'
$ dash -c 'echo "\*"'
\wwww \zzzz

[...]

Currently:

$ dash -c 'foo=a; echo "<${foo#[a\]]}>"'
<>

This is what I expect, and also what bash, ksh and posh do.

With your patch:

$ dash -c 'foo=a; echo "<${foo#[a\]]}>"'
<a>

Does the attached look right as an alternative? It treats a quoted backslash the same way as if it were preceded by CTLESC in _rmescapes. It passes your test case and mine, but I'll do more extensive testing.

It causes preglob's string to potentially grow larger than the original. When called with RMESCAPE_ALLOC, that can be handled by increasing the buffer size, but preglob also gets called without RMESCAPE_ALLOC to modify a string in-place. That's never going to work with this approach. Back to the drawing board...

Cheers,
Harald van Dijk
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to