From ed8ba14441d5a9c97c0cb8ba9e262595cf94dd1a Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Tue, 4 Oct 2011 13:50:21 +0200 Subject: [PATCH] Remove all other uses of the C tolower()/toupper() which could break with a Turkish locale. --- Modules/_tkinter.c | 4 ++-- Modules/binascii.c | 4 ++-- Modules/unicodedata.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index cb2795f7d96..672837f2b59 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -661,8 +661,8 @@ Tkapp_New(char *screenName, char *className, } strcpy(argv0, className); - if (isupper(Py_CHARMASK(argv0[0]))) - argv0[0] = tolower(Py_CHARMASK(argv0[0])); + if (Py_ISUPPER(Py_CHARMASK(argv0[0]))) + argv0[0] = Py_TOLOWER(Py_CHARMASK(argv0[0])); Tcl_SetVar(v->interp, "argv0", argv0, TCL_GLOBAL_ONLY); ckfree(argv0); diff --git a/Modules/binascii.c b/Modules/binascii.c index 01e8860218c..19681b415cc 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -1102,8 +1102,8 @@ to_int(int c) if (isdigit(c)) return c - '0'; else { - if (isupper(c)) - c = tolower(c); + if (Py_ISUPPER(c)) + c = Py_TOLOWER(c); if (c >= 'a' && c <= 'f') return c - 'a' + 10; } diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c index 463be2c8f8b..887056ce5dc 100644 --- a/Modules/unicodedata.c +++ b/Modules/unicodedata.c @@ -830,7 +830,7 @@ _gethash(const char *s, int len, int scale) unsigned long h = 0; unsigned long ix; for (i = 0; i < len; i++) { - h = (h * scale) + (unsigned char) toupper(Py_CHARMASK(s[i])); + h = (h * scale) + (unsigned char) Py_TOUPPER(Py_CHARMASK(s[i])); ix = h & 0xff000000; if (ix) h = (h ^ ((ix>>24) & 0xff)) & 0x00ffffff; @@ -980,7 +980,7 @@ _cmpname(PyObject *self, int code, const char* name, int namelen) if (!_getucname(self, code, buffer, sizeof(buffer))) return 0; for (i = 0; i < namelen; i++) { - if (toupper(Py_CHARMASK(name[i])) != buffer[i]) + if (Py_TOUPPER(Py_CHARMASK(name[i])) != buffer[i]) return 0; } return buffer[namelen] == '\0';