diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Doc/Zsh/options.yo | 10 | ||||
-rw-r--r-- | Src/options.c | 1 | ||||
-rw-r--r-- | Src/pattern.c | 5 | ||||
-rw-r--r-- | Src/zsh.h | 1 |
5 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index f9050001e..416bcf91a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-03-06 Peter Stephenson <pws@pwstephenson.fsnet.co.uk> + + * zsh-users/7121: Doc/Zsh/options.yo, Src/options.c, + Src/pattern.c, Src/zsh.h: NO_CASE_GLOB option for + case-insensitive globbing. + 2004-03-05 Wayne Davison <wayned@users.sourceforge.net> * unposted: config.guess, config.sub: update to versions from diff --git a/Doc/Zsh/options.yo b/Doc/Zsh/options.yo index c48427316..aa22b016f 100644 --- a/Doc/Zsh/options.yo +++ b/Doc/Zsh/options.yo @@ -219,6 +219,16 @@ Make the tt(echo) builtin compatible with the BSD manref(echo)(1) command. This disables backslashed escape sequences in echo strings unless the tt(-e) option is specified. ) +pindex(CASE_GLOB) +cindex(case-insensitive globbing, option) +item(tt(CASE_GLOB) <D>)( +Make globbing (filename generation) sensitive to case. Note that other +uses of patterns are always sensitive to case. If the option is unset, +the presence of any character which is special to filename generation +will cause case-insensitive matching. For example, tt(cvs(/)) can +match the directory tt(CVS) owing to the presence of the globbing flag +(unless the option tt(BARE_GLOB_QUAL) is unset). +) pindex(C_BASES) cindex(bases, output in C format) cindex(hexadecimal, output in C format) diff --git a/Src/options.c b/Src/options.c index 8cc8f2a8e..359229a57 100644 --- a/Src/options.c +++ b/Src/options.c @@ -92,6 +92,7 @@ static struct optname optns[] = { {NULL, "bgnice", OPT_EMULATE|OPT_NONBOURNE, BGNICE}, {NULL, "braceccl", OPT_EMULATE, BRACECCL}, {NULL, "bsdecho", OPT_EMULATE|OPT_SH, BSDECHO}, +{NULL, "caseglob", OPT_ALL, CASEGLOB}, {NULL, "cbases", 0, CBASES}, {NULL, "cdablevars", OPT_EMULATE, CDABLEVARS}, {NULL, "chasedots", OPT_EMULATE, CHASEDOTS}, diff --git a/Src/pattern.c b/Src/pattern.c index b62cbcd37..1f0a87561 100644 --- a/Src/pattern.c +++ b/Src/pattern.c @@ -289,7 +289,10 @@ static long rn_offs; void patcompstart(void) { - patglobflags = 0; + if (isset(CASEGLOB)) + patglobflags = 0; + else + patglobflags = GF_IGNCASE; } /* Top level pattern compilation subroutine */ diff --git a/Src/zsh.h b/Src/zsh.h index cf470f001..aab4737f9 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -1412,6 +1412,7 @@ enum { BGNICE, BRACECCL, BSDECHO, + CASEGLOB, CBASES, CDABLEVARS, CHASEDOTS, |