about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/options.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index fb2a3f5cc..5e3fb4ae3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-15  Peter Stephenson  <pws@csr.com>
+
+	* 23219: Src/options.c: Ismail Dönmez reported that lower
+	casing of I to dotless i in tr_TR.UTF-8 broke option handling.
+
 2007-03-14  Clint Adams  <clint@zsh.org>
 
 	* 23215: Completion/Unix/Command/_module: completion for
diff --git a/Src/options.c b/Src/options.c
index d0474498c..89178b313 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -603,7 +603,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++;
 	}