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.
diff --git a/Python/getargs.c b/Python/getargs.c
index 91d9b47..3b58c98 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -1081,7 +1081,7 @@
case 'S': { /* string object */
PyObject **p = va_arg(*p_va, PyObject **);
- if (PyString_Check(arg))
+ if (PyString_Check(arg) || PyUnicode_Check(arg))
*p = arg;
else
return converterr("string", arg, msgbuf, bufsize);
@@ -1531,7 +1531,7 @@
while (PyDict_Next(keywords, &pos, &key, &value)) {
int match = 0;
char *ks;
- if (!PyString_Check(key)) {
+ if (!PyString_Check(key) && !PyUnicode_Check(key)) {
PyErr_SetString(PyExc_TypeError,
"keywords must be strings");
return cleanreturn(0, freelist);