diff --git a/Source/Swig/parms.c b/Source/Swig/parms.c index cf7925f45..3b8993851 100644 --- a/Source/Swig/parms.c +++ b/Source/Swig/parms.c @@ -169,7 +169,32 @@ String *ParmList_str(ParmList *p) { } /* --------------------------------------------------------------------- - * ParmList_str() + * ParmList_str_defaultargs() + * + * Generates a string of parameters including default arguments + * ---------------------------------------------------------------------- */ + +String *ParmList_str_defaultargs(ParmList *p) { + String *out; + String *value; + SwigType *t; + + out = NewString(""); + while(p) { + t = Getattr(p,"type"); + Printf(out,"%s", SwigType_str(t,Getattr(p,"name"))); + value = Getattr(p,"value"); + if (value) + Printf(out,"=%s", value); + p = nextSibling(p); + if (p) + Printf(out,","); + } + return out; +} + +/* --------------------------------------------------------------------- + * ParmList_protostr() * * Generate a prototype string. * ---------------------------------------------------------------------- */ diff --git a/Source/Swig/swig.h b/Source/Swig/swig.h index ab5dca959..cba6e898d 100644 --- a/Source/Swig/swig.h +++ b/Source/Swig/swig.h @@ -324,6 +324,7 @@ extern int ParmList_len(ParmList *); extern int ParmList_numarg(ParmList *); extern int ParmList_numrequired(ParmList *); extern String *ParmList_str(ParmList *); +extern String *ParmList_str_defaultargs(ParmList *); extern String *ParmList_protostr(ParmList *); /* --- Parse tree support --- */ @@ -437,7 +438,6 @@ extern void Swig_error_msg_format(ErrorMessageFormat format); /* --- C Wrappers --- */ extern String *Swig_cparm_name(Parm *p, int i); -extern String *Swig_clocal(SwigType *t, String_or_char *name, String_or_char *value); extern String *Swig_wrapped_var_type(SwigType *t); extern int Swig_cargs(Wrapper *w, ParmList *l); extern String *Swig_cresult(SwigType *t, const String_or_char *name, const String_or_char *decl);