On 5/10/25 11:18 AM, Sam James wrote:
Hi,

Since the following commit on devel

       commit c3ca11424d2ae66cafa2f931b008dfb728e209a5
       Author: Chet Ramey <chet.ra...@case.edu>
       Date:   Wed Feb 12 11:18:16 2025 -0500
       fix issue with redirections to bash input file descriptor; new minimal 
chmod builtin; posix mode change for kill builtin return status; perform 
additional validation on brace expansion sequence expressions

The rationale for this change is to identify brace expansions that contain
multiple expressions, some valid and some not. The examples added to the
tests show what I mean:

echo {{1,2,3}..{7,8,9}}

Here the sequence expansion is invalid and shouldn't be evaluated as such,
but the rest of the brace expansion is valid and should produce

{1..7} {1..8} {1..9} {2..7} {2..8} {2..9} {3..7} {3..8} {3..9}

Bash versions through bash-5.2 produced

1..7 1..8 1..9 2..7 2..8 2..9 3..7 3..8 3..9

So the additional validation on sequence expressions means that they have
to follow the documented rules for those expansions, which was a little
lax before the change.

the following behaves differently:
$ echo {a,../a.cfg}
{a,../a.cfg} # with devel

The problem here is that additional validation: the code always treated
the `../a.cfg' as a potential sequence expression, but left it alone and
just expanded the comma if it didn't qualify as valid. After the change,
it still tries to treat that as a potential sequence expression, but now
marks it as invalid, so the entire brace expansion fails.

We can fix this particular issue by noting the comma and treating it as
the separator, and not trying to treat the ../a.cfg as a sequence
expression and validate it. This forces the comma to have higher
precedence, which I think is the right thing and is still backwards
compatible even with the additional validation.

Does this constitute a valid sequence expression? The documentation
implies that even if not, an unquoted comma may be fine.

I think it is not.

--
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://tiswww.cwru.edu/~chet/

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to