[Python-checkins] CVS: python/dist/src/Python getargs.c,2.25,2.26
Guido van Rossum
guido@cnri.reston.va.us
Fri, 10 Mar 2000 18:02:20 -0500 (EST)
Update of /projects/cvsroot/python/dist/src/Python
In directory eric:/home/guido/hp/mal/py-patched/Python
Modified Files:
getargs.c
Log Message:
Marc-Andre Lemburg: support for Unicode strings; 'U' expects a Unicode
object.
Index: getargs.c
===================================================================
RCS file: /projects/cvsroot/python/dist/src/Python/getargs.c,v
retrieving revision 2.25
retrieving revision 2.26
diff -C2 -r2.25 -r2.26
*** getargs.c 1999/02/17 23:16:43 2.25
--- getargs.c 2000/03/10 23:02:17 2.26
***************
*** 586,590 ****
if (PyString_Check(arg))
! *p = PyString_AsString(arg);
else
return "string";
--- 586,596 ----
if (PyString_Check(arg))
! *p = PyString_AS_STRING(arg);
! else if (PyUnicode_Check(arg)) {
! arg = PyUnicode_AsUTF8String(arg);
! if (arg == NULL)
! return "unicode conversion error";
! *p = PyString_AS_STRING(arg);
! }
else
return "string";
***************
*** 626,629 ****
--- 632,641 ----
else if (PyString_Check(arg))
*p = PyString_AsString(arg);
+ else if (PyUnicode_Check(arg)) {
+ arg = PyUnicode_AsUTF8String(arg);
+ if (arg == NULL)
+ return "unicode conversion error";
+ *p = PyString_AS_STRING(arg);
+ }
else
return "None or string";
***************
*** 650,653 ****
--- 662,675 ----
else
return "string";
+ break;
+ }
+
+ case 'U': /* Unicode object */
+ {
+ PyObject **p = va_arg(*p_va, PyObject **);
+ if (PyUnicode_Check(arg))
+ *p = arg;
+ else
+ return "unicode";
break;
}