diff --git a/SWIG/Source/Swig/stype.c b/SWIG/Source/Swig/stype.c index 55e78b500..627c0cfd1 100644 --- a/SWIG/Source/Swig/stype.c +++ b/SWIG/Source/Swig/stype.c @@ -394,7 +394,8 @@ SwigType *SwigType_default(SwigType *t) { #ifdef SWIG_NEW_TYPE_DEFAULT SwigType *nr = Copy(r); SwigType_del_pointer(nr); - def = NewStringf("p."); + def = SwigType_isfunction(nr) ? + NewStringf("") : NewStringf("p."); SwigType_add_default(def, nr); Delete(nr); #else @@ -454,6 +455,12 @@ SwigType *SwigType_default(SwigType *t) { } else { def = NewString("enum SWIGTYPE"); } + } else if (SwigType_isfunction(r)) { + if (Strcmp(r,"f(ANY).SWIGTYPE") == 0) { + def = NewString("p.SWIGTYPE"); + } else { + def = NewString("p.f(ANY).SWIGTYPE"); + } } else { def = NewString("SWIGTYPE"); }