Namespace functions as well; Remove :: from tl elements

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2012-c@13332 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Leif Middelschulte 2012-07-18 23:35:22 +00:00
commit 433a1743ab

View file

@ -111,6 +111,7 @@ public:
goto _get_proxyname_return; goto _get_proxyname_return;
if (nspace) { if (nspace) {
Replaceall(nspace, ".", "_"); // Classes' namespaces get dotted -> replace; FIXME in core!
proxyname = Swig_name_proxy(nspace, symname); proxyname = Swig_name_proxy(nspace, symname);
if (tl_namespace) if (tl_namespace)
proxyname = Swig_name_proxy(tl_namespace, proxyname); proxyname = Swig_name_proxy(tl_namespace, proxyname);
@ -402,6 +403,9 @@ public:
String *arg_list = NewString(""); String *arg_list = NewString("");
String *call = empty_string; String *call = empty_string;
String *cres = empty_string; String *cres = empty_string;
String *nspaced_symname = Swig_name_mangle(Getattr(n, "name"));
Setattr(n, "sym:name", nspaced_symname);
call = Swig_cfunction_call(Getattr(n, "name"), parms); call = Swig_cfunction_call(Getattr(n, "name"), parms);
cres = Swig_cresult(type, "result", call); cres = Swig_cresult(type, "result", call);
@ -768,8 +772,10 @@ ready:
} }
else { else {
Printv(proxy_parm_type, c_parm_type, NIL); Printv(proxy_parm_type, c_parm_type, NIL);
//FIXME: implement "convert_to_c_namespace"? // Add namespace
Replaceall(proxy_parm_type, "::", "_"); Replaceall(proxy_parm_type, "::", "_"); // FIXME: implement "convert_to_c_namespace"?
if (strncmp(Char(proxy_parm_type), "_", 1) == 0) // Remove top level namespacing if necessary
Replace(proxy_parm_type, "_", "", DOH_REPLACE_FIRST);
} }
Printv(proto, gencomma ? ", " : "", proxy_parm_type, " ", arg_name, NIL); Printv(proto, gencomma ? ", " : "", proxy_parm_type, " ", arg_name, NIL);