Repository navigation
Commit 73e2bad
Fix glob() not negating bracket expressions that start with "^" (#24422)
Since PHP 8.5, glob() uses the bundled implementation on all platforms.
It only recognizes a leading "!" as bracket negation, so patterns such as
"[^a]" match "^" or "a" instead of excluding "a", unlike glibc's glob().
Treat a leading "^" like "!", matching glibc and PHP's fnmatch() behavior,
including on Windows. POSIX leaves this syntax unspecified. Document the
intentional deviation from OpenBSD so it is preserved during future syncs.
Add regression coverage for negated characters and ranges, a leading "]",
and a literal "^" elsewhere in a bracket expression. This was found while
working on symfony/symfony#67133.
Closes #244221 parent 62c3ea2 commit 73e2bad
3 files changed
Lines changed: 39 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
| 109 | + | |
| 110 | + | |
109 | 111 | | |
110 | 112 | | |
111 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| 110 | + | |
110 | 111 | | |
111 | 112 | | |
112 | 113 | | |
| |||
566 | 567 | | |
567 | 568 | | |
568 | 569 | | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
569 | 576 | | |
570 | 577 | | |
571 | 578 | | |
| |||
0 commit comments