unnamed global enum variables support

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5927 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2004-05-24 20:35:16 +00:00
commit b6cb23c83e

View file

@ -89,7 +89,13 @@ static int varref = 0;
String *
Swig_wrapped_var_type(SwigType *t) {
SwigType *ty;
ty = Copy(t);
if (!Strstr(t,"enum $unnamed")) {
ty = Copy(t);
} else {
/* Change the type for unnamed enum instance variables */
ty = NewString("int");
}
if (SwigType_isclass(t)) {
if (varref) {
@ -1092,7 +1098,11 @@ Swig_VarsetToFunction(Node *n) {
parms = NewParm(ty,"value");
Delete(ty);
Setattr(n,"wrap:action", NewStringf("%s = %s;\n", nname, Swig_wrapped_var_deref(type,Swig_cparm_name(0,0))));
if (!Strstr(type,"enum $unnamed")) {
Setattr(n,"wrap:action", NewStringf("%s = %s;\n", nname, Swig_wrapped_var_deref(type,Swig_cparm_name(0,0))));
} else {
Setattr(n,"wrap:action", NewStringf("if (sizeof(int) == sizeof(%s)) *(int*)(void*)&(%s) = %s;\n", nname, nname, Swig_cparm_name(0,0)));
}
Setattr(n,"type","void");
Setattr(n,"parms",parms);
Delete(parms);