Two additional special variable are expanded in %exception - $parentname

and $parentsymname

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13870 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2012-10-11 19:24:24 +00:00
commit 2598a1daf2
5 changed files with 68 additions and 5 deletions

View file

@ -381,6 +381,21 @@ int emit_action_code(Node *n, String *wrappercode, String *eaction) {
Replaceall(tm, "$fulldecl", fulldecl);
Delete(fulldecl);
}
Node *parentnode = parentNode(n);
Node *parentclass = (parentnode && Equal(nodeType(parentnode), "class")) ? parentnode : 0;
if (Strstr(tm, "$parentclasssymname")) {
String *parentclasssymname = 0;
if (parentclass)
parentclasssymname = Getattr(parentclass, "sym:name");
Replaceall(tm, "$parentclasssymname", parentclasssymname ? parentclasssymname : "");
}
if (Strstr(tm, "$parentclassname")) {
String *parentclassname = 0;
if (parentclass)
parentclassname = Getattr(parentclass, "name");
Replaceall(tm, "$parentclassname", parentclassname ? parentclassname : "");
}
}
Printv(wrappercode, tm, "\n", NIL);
Delete(tm);