Mercurial > cpython-lru_cache-weakref
diff Objects/moduleobject.c @ 41558:29ae667f3239
Checkpoint. Manipulated things so that string literals are always
unicode, and a few other compensating changes, e.g. str <- unicode,
chr <- unichr, and repr() of a unicode string no longer starts
with 'u'. Lots of unit tests are broken, but some basic things
work, in particular distutils works so the extensions can be built,
and test_builtin.py works.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 27 Apr 2007 23:53:51 +0000 |
| parents | f731859e9b3b |
| children | 2c54763c4504 |
line wrap: on
line diff
--- a/Objects/moduleobject.c Fri Apr 27 20:16:19 2007 +0000 +++ b/Objects/moduleobject.c Fri Apr 27 23:53:51 2007 +0000 @@ -59,6 +59,7 @@ { PyObject *d; PyObject *nameobj; + char *s; if (!PyModule_Check(m)) { PyErr_BadArgument(); return NULL; @@ -66,11 +67,13 @@ d = ((PyModuleObject *)m)->md_dict; if (d == NULL || (nameobj = PyDict_GetItemString(d, "__name__")) == NULL || - !PyString_Check(nameobj)) + !(PyString_Check(nameobj) || PyUnicode_Check(nameobj))) { PyErr_SetString(PyExc_SystemError, "nameless module"); return NULL; } + if (PyUnicode_Check(nameobj)) + nameobj = _PyUnicode_AsDefaultEncodedString(nameobj, "replace"); return PyString_AsString(nameobj); }
