[Python-3000-checkins] r56988 - python/branches/py3k/Modules/_localemodule.c

guido.van.rossum python-3000-checkins at python.org
Mon Aug 13 20:43:37 CEST 2007


Author: guido.van.rossum
Date: Mon Aug 13 20:43:36 2007
New Revision: 56988

Modified:
   python/branches/py3k/Modules/_localemodule.c
Log:
Don't mess with string.letters any more.  It is most likely going to disappear.
Even if it isn't, it shouldn't be changed based on the locale setting IMO.
(Incidentally, this makes test_csv.py pass again on my box.)


Modified: python/branches/py3k/Modules/_localemodule.c
==============================================================================
--- python/branches/py3k/Modules/_localemodule.c	(original)
+++ python/branches/py3k/Modules/_localemodule.c	Mon Aug 13 20:43:36 2007
@@ -93,63 +93,6 @@
     return result;
 }
 
-static void
-fixup_ulcase(void)
-{
-    PyObject *mods, *string, *ulo;
-    unsigned char ul[256];
-    int n, c;
-
-    /* find the string module */
-    mods = PyImport_GetModuleDict();
-    if (!mods)
-        return;
-    string = PyDict_GetItemString(mods, "string");
-    if (string)
-        string = PyModule_GetDict(string);
-    if (!string)
-        return;
-
-    /* create uppercase map string */
-    n = 0;
-    for (c = 0; c < 256; c++) {
-        if (isupper(c))
-            ul[n++] = c;
-    }
-    ulo = PyString_FromStringAndSize((const char *)ul, n);
-    if (!ulo)
-        return;
-    if (string)
-        PyDict_SetItemString(string, "uppercase", ulo);
-    Py_DECREF(ulo);
-
-    /* create lowercase string */
-    n = 0;
-    for (c = 0; c < 256; c++) {
-        if (islower(c))
-            ul[n++] = c;
-    }
-    ulo = PyString_FromStringAndSize((const char *)ul, n);
-    if (!ulo)
-        return;
-    if (string)
-        PyDict_SetItemString(string, "lowercase", ulo);
-    Py_DECREF(ulo);
-
-    /* create letters string */
-    n = 0;
-    for (c = 0; c < 256; c++) {
-        if (isalpha(c))
-            ul[n++] = c;
-    }
-    ulo = PyString_FromStringAndSize((const char *)ul, n);
-    if (!ulo)
-        return;
-    if (string)
-        PyDict_SetItemString(string, "letters", ulo);
-    Py_DECREF(ulo);
-}
-
 static PyObject*
 PyLocale_setlocale(PyObject* self, PyObject* args)
 {
@@ -171,11 +114,6 @@
         result_object = PyString_FromString(result);
         if (!result_object)
             return NULL;
-        /* record changes to LC_CTYPE */
-        if (category == LC_CTYPE || category == LC_ALL)
-            fixup_ulcase();
-        /* things that got wrong up to here are ignored */
-        PyErr_Clear();
     } else {
         /* get locale */
         result = setlocale(category, NULL);


More information about the Python-3000-checkins mailing list