[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;
  		}