Index: Source/Modules/python.cxx
===================================================================
RCS file: /cvsroot/SWIG/Source/Modules/python.cxx,v
-retrieving revision 1.28
-diff -u -4 -r1.28 python.cxx
---- Source/Modules/python.cxx 18 Nov 2003 20:19:15 -0000 1.28
-+++ Source/Modules/python.cxx 27 Nov 2003 00:52:28 -0000
-@@ -67,8 +67,19 @@
- -new_repr - Use more informative version of __repr__ in proxy classes\n\
- -noexcept - No automatic exception handling\n\
- -noproxy - Don't generate proxy classes \n\n";
+retrieving revision 1.40
+diff -u -4 -r1.40 python.cxx
+--- Source/Modules/python.cxx 24 Jan 2004 00:25:31 -0000 1.40
++++ Source/Modules/python.cxx 30 Jan 2004 22:22:16 -0000
+@@ -50,8 +50,17 @@
+ static int have_constructor;
+ static int have_repr;
+ static String *real_classname;
-+
+/* flags for the make_autodoc function */
+enum autodoc_t {
+ AUTODOC_CLASS,
+ AUTODOC_FUNC
+};
+
-+
- class PYTHON : public Language {
- public:
-
- /* ------------------------------------------------------------
-@@ -414,17 +425,23 @@
+ static const char *usage = (char *)"\
+ Python Options (available with -python)\n\
+ -ldflags - Print runtime libraries to link with\n\
+ -globals <name> - Set <name> used to access C global variable [default: 'cvar']\n\
+@@ -417,17 +426,23 @@
* functions.
* ------------------------------------------------------------ */
}
-@@ -438,8 +455,246 @@
+@@ -441,8 +456,248 @@
}
+ have_auto = (autodoc != NULL && Len(autodoc) > 0);
+ }
+
-+// if ( have_auto && have_ds )
-+// doc = NewStringf("%s%s\n\n%s%s", triple_double, autodoc, str, triple_double);
-+// else if ( !have_auto && have_ds )
-+// doc = NewStringf("%s%s%s", triple_double, str, triple_double);
-+// else
-+// doc = NewStringf("%s%s%s", triple_double, autodoc, triple_double);
-+
-+
+ // If there is more than one line then make docstrings like this:
+ //
+ // """
+ if (Strcmp(type, "void") == 0)
+ type = NULL;
+ else {
-+ type = SwigType_base(type);
-+ Node* lookup = Swig_symbol_clookup(type, 0);
-+ if (lookup)
-+ type = Getattr(lookup, "sym:name");
++ SwigType* qt = SwigType_typedef_resolve_all(type);
++ if (SwigType_isenum(qt))
++ type = NewString("int");
++ else {
++ type = SwigType_base(type);
++ Node* lookup = Swig_symbol_clookup(type, 0);
++ if (lookup)
++ type = Getattr(lookup, "sym:name");
++ }
+ }
+ }
+
+ break;
+
+ case AUTODOC_STATICFUNC:
-+ Printf(doc, "%s.%s(%s)", class_name, symname, make_autodocParmList(n, showTypes));
++ Printf(doc, "%s(%s)", symname, make_autodocParmList(n, showTypes));
+ if (type) Printf(doc, " -> %s", type);
+ break;
+
+ // Do the param type too?
+ if (showTypes) {
+ SwigType* type = SwigType_base(Getattr(p, "type"));
-+ lookup = Swig_symbol_clookup(type, 0);
-+ if (lookup)
-+ type = Getattr(lookup, "sym:name");
++ SwigType* qt = SwigType_typedef_resolve_all(type);
++ if (SwigType_isenum(qt))
++ type = NewString("int");
++ else {
++ lookup = Swig_symbol_clookup(type, 0);
++ if (lookup)
++ type = Getattr(lookup, "sym:name");
++ }
+ Printf(doc, "%s ", type);
+ }
+
* Check if there is a %addtofunc directive and it has text
* ------------------------------------------------------------ */
-@@ -1660,9 +1915,11 @@
+@@ -1731,9 +1986,11 @@
Printf(f_shadow, modern ? "(object)" : "(_object)");
}
}
Printv(f_shadow,tab4,"__swig_setmethods__ = {}\n",NIL);
if (Len(base_class)) {
Printf(f_shadow,"%sfor _s in [%s]: __swig_setmethods__.update(_s.__swig_setmethods__)\n",tab4,base_class);
-@@ -1795,16 +2052,22 @@
+@@ -1866,16 +2123,22 @@
Delete(pyaction);
Printv(f_shadow,pycode,"\n",NIL);
} else {
}
}
-@@ -1819,14 +2082,20 @@
+@@ -1890,14 +2153,20 @@
virtual int staticmemberfunctionHandler(Node *n) {
String *symname = Getattr(n,"sym:name");
Language::staticmemberfunctionHandler(n);
" = staticmethod(", symname, ")\n", NIL);
if (!modern) {
-@@ -1911,8 +2180,10 @@
+@@ -1982,8 +2251,10 @@
}
Printv(f_shadow, tab4, "def __init__(self, *args",
if (!modern) {
Printv(f_shadow, tab8, "_swig_setattr(self, ", rclassname, ", 'this', ",
funcCallHelper(Swig_name_construct(symname), allow_kwargs), ")\n", NIL);
-@@ -1926,9 +2197,9 @@
+@@ -1997,9 +2268,9 @@
Printv(f_shadow, tab8, "self.thisown = 1\n", NIL);
Printv(f_shadow, tab8, "del newobj.thisown\n", NIL);
}
}
have_constructor = 1;
} else {
-@@ -1944,8 +2215,10 @@
+@@ -2015,8 +2286,10 @@
} else {
Printv(f_shadow_stubs, "\ndef ", symname, "(*args",
funcCallHelper(Swig_name_construct(symname), allow_kwargs), "\n", NIL);
Printv(f_shadow_stubs, tab4, "val.thisown = 1\n", NIL);
if ( have_addtofunc(n) )
-@@ -1977,13 +2250,15 @@
+@@ -2048,13 +2321,15 @@
Delete(pyaction);
Printv(f_shadow,pycode,"\n", NIL);
} else {