diff options
author | Bart Schaefer <schaefer@ipost.com> | 2021-04-10 14:26:46 -0700 |
---|---|---|
committer | Bart Schaefer <schaefer@ipost.com> | 2021-04-10 14:26:46 -0700 |
commit | 408a83048366a22bf7645b71bee7428743793736 (patch) | |
tree | 993f2e154dda94aa953c74450870eee9adc9968b /Src/pattern.c | |
parent | 1bec15a0105c7884c1a6d1243087ebcc801a5937 (diff) | |
download | zsh-408a83048366a22bf7645b71bee7428743793736.tar.gz zsh-408a83048366a22bf7645b71bee7428743793736.tar.xz zsh-408a83048366a22bf7645b71bee7428743793736.zip |
47913: implement CASE_PATHS option to make NO_CASE_GLOB more sensible
Diffstat (limited to 'Src/pattern.c')
-rw-r--r-- | Src/pattern.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Src/pattern.c b/Src/pattern.c index c28f2c9fb..c0e31b78e 100644 --- a/Src/pattern.c +++ b/Src/pattern.c @@ -509,7 +509,7 @@ void patcompstart(void) { patcompcharsset(); - if (isset(CASEGLOB)) + if (isset(CASEGLOB) || isset(CASEPATHS)) patglobflags = 0; else patglobflags = GF_IGNCASE; @@ -632,6 +632,13 @@ patcompile(char *exp, int inflags, char **endexp) p->patmlen = len; p->patnpar = patnpar-1; +#ifndef __CYGWIN__ /* The filesystem itself is case-insensitive on Cygwin */ + if ((patflags & PAT_FILE) && !isset(CASEGLOB) && !(patflags & PAT_PURES)) { + p->globflags |= GF_IGNCASE; + p->globend |= GF_IGNCASE; + } +#endif + if (!strp) { pscan = (Upat)(patout + startoff); |