summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Doc/Zsh/options.yo10
-rw-r--r--Src/options.c1
-rw-r--r--Src/pattern.c5
-rw-r--r--Src/zsh.h1
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,