[Python-checkins] python/dist/src/Python getargs.c,2.100,2.101

bcannon at users.sourceforge.net bcannon at users.sourceforge.net
Sun Jul 11 00:20:49 CEST 2004


Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10742/Python

Modified Files:
	getargs.c 
Log Message:
Add PyArg_VaParseTupleAndKeywords().  Document this function and
PyArg_VaParse().

Closes patch #550732.  Thanks Greg Chapman.


Index: getargs.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/getargs.c,v
retrieving revision 2.100
retrieving revision 2.101
diff -C2 -d -r2.100 -r2.101
*** getargs.c	3 May 2003 10:00:22 -0000	2.100
--- getargs.c	10 Jul 2004 22:20:16 -0000	2.101
***************
*** 13,16 ****
--- 13,19 ----
  int PyArg_ParseTupleAndKeywords(PyObject *, PyObject *,
  				char *, char **, ...);
+ int PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *,
+ 				char *, char **, va_list);
+ 
  
  /* Forward */
***************
*** 1154,1157 ****
--- 1157,1193 ----
  
  
+ int
+ PyArg_VaParseTupleAndKeywords(PyObject *args,
+ 			    PyObject *keywords,
+ 			    char *format, 
+ 			    char **kwlist, va_list va)
+ {
+ 	int retval;
+ 	va_list lva;
+ 
+ 	if ((args == NULL || !PyTuple_Check(args)) ||
+ 	    (keywords != NULL && !PyDict_Check(keywords)) ||
+ 	    format == NULL ||
+ 	    kwlist == NULL)
+ 	{
+ 		PyErr_BadInternalCall();
+ 		return 0;
+ 	}
+ 
+ #ifdef VA_LIST_IS_ARRAY
+ 	memcpy(lva, va, sizeof(va_list));
+ #else
+ #ifdef __va_copy
+ 	__va_copy(lva, va);
+ #else
+ 	lva = va;
+ #endif
+ #endif
+ 
+ 	retval = vgetargskeywords(args, keywords, format, kwlist, &lva);	
+ 	return retval;
+ }
+ 
+ 
  static int
  vgetargskeywords(PyObject *args, PyObject *keywords, char *format,



More information about the Python-checkins mailing list