1 /* This file defines an internal function for processing default arguments
 
   4    There seems to be no straightforward way to write a shadow functions
 
   5    involving default arguments. For example :
 
   7              def foo(arg1,arg2,*args):
 
   8                      shadowc.foo(arg1,arg2,args)
 
  10    This fails because args is now a tuple and SWIG doesn't know what to
 
  13    This file allows a different approach :
 
  15             def foo(arg1,arg2,*args):
 
  16                     shadowc.__call_defarg(shadowc.foo,(arg1,arg2,)+args)
 
  18    Basically, we form a new tuple from the object, call this special
 
  19    __call_defarg method and it passes control to the real wrapper function.
 
  20    An ugly hack, but it works.
 
  23 static PyObject *swig_call_defargs(PyObject *self, PyObject *args) {
 
  27         if (!PyArg_ParseTuple(args,"OO",&func,&parms))
 
  30         if (!PyCallable_Check(func)) {
 
  31              PyErr_SetString(PyExc_TypeError, "__call_defarg : Need a callable object!");
 
  34         return PyEval_CallObject(func,parms);