about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-11-12 04:33:49 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-11-12 04:33:49 +0000
commit56d34005d52dba73ec7b08b06583a28ce67fb98c (patch)
tree3bd59191bd64b1c184bdb54523659ea1191db8cb /Src
parent31e0eee23476c5e2dd7f5eb8e060c6f127969af7 (diff)
downloadzsh-56d34005d52dba73ec7b08b06583a28ce67fb98c.tar.gz
zsh-56d34005d52dba73ec7b08b06583a28ce67fb98c.tar.xz
zsh-56d34005d52dba73ec7b08b06583a28ce67fb98c.zip
Merge of 23219: Fix lower casing of option names in some locales.
Diffstat (limited to 'Src')
-rw-r--r--Src/options.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/Src/options.c b/Src/options.c
index 1cf39bbbc..5d47ccdcb 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -589,7 +589,14 @@ optlookup(char const *name)
 	if (*t == '_')
 	    chuck(t);
 	else {
-	    *t = tulower(*t);
+	    /*
+	     * Some locales (in particular tr_TR.UTF-8) may
+	     * have non-standard mappings of ASCII characters,
+	     * so be careful.  Option names must be ASCII so
+	     * we don't need to be too clever.
+	     */
+	    if (*t >= 'A' && *t <= 'Z')
+		*t = (*t - 'A') + 'a';
 	    t++;
 	}