diff Python/getargs.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 4aee3f672f77
children 15b810e21fe9
line wrap: on
line diff
--- a/Python/getargs.c	Fri Apr 27 20:16:19 2007 +0000
+++ b/Python/getargs.c	Fri Apr 27 23:53:51 2007 +0000
@@ -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);