Source

wxPython / SWIG / swig-1.3.29.patch

Full commit
Index: Makefile.in
===================================================================
RCS file: /cvsroot/swig/SWIG/Makefile.in,v
retrieving revision 1.103
diff -u -4 -r1.103 Makefile.in
--- Makefile.in	10 Mar 2006 22:54:02 -0000	1.103
+++ Makefile.in	5 Jul 2006 00:50:18 -0000
@@ -21,9 +21,9 @@
 
 source:
 	@cd $(SOURCE) && $(MAKE)
 
-libfiles: Lib/swigwarn.swg
+libfiles: $(srcdir)/Lib/swigwarn.swg
 
 .PHONY: source libfiles
 
 #####################################################################
@@ -339,9 +339,9 @@
 #####################################################################
 # Update the Lib/swigwarn.swg file
 #####################################################################
 
-Lib/swigwarn.swg: Source/Include/swigwarn.h
+$(srcdir)/Lib/swigwarn.swg: $(srcdir)/Source/Include/swigwarn.h
 	echo "/* Automatically generated file containing all the swig warning codes.  */" > $@
 	echo "/* Do not modify this file by hand, change 'Source/Include/swigwarn.h'  */" >> $@
 	echo  "/* and use the command 'make Lib/swigwarn.swg' instead.                 */" >> $@
 	echo >> $@; echo >> $@
Index: Lib/typemaps/exception.swg
===================================================================
RCS file: /cvsroot/swig/SWIG/Lib/typemaps/exception.swg,v
retrieving revision 1.8
diff -u -4 -r1.8 exception.swg
--- Lib/typemaps/exception.swg	7 Mar 2006 00:14:10 -0000	1.8
+++ Lib/typemaps/exception.swg	5 Jul 2006 00:50:18 -0000
@@ -12,9 +12,9 @@
 
 /* macros for error manipulation */
 #define %nullref_fmt()                     "invalid null reference "		   
 #define %varfail_fmt(_type,_name)          "in variable '"`_name`"' of type '"`_type`"'"
-#define %argfail_fmt(_type,_name,_argn)    "in method '" `_name` "', argument " `_argn`" of type '" `_type`"'"
+#define %argfail_fmt(_type,_name,_argn)    "in method '" `_name` "', expected argument " `_argn`" of type '" `_type`"'"
 #define %outfail_fmt(_type)                "in output value of type '"_type"'"	   
 #define %argnullref_fmt(_type,_name,_argn) %nullref_fmt() %argfail_fmt(_type, _name, _argn)  
 #define %varnullref_fmt(_type,_name)       %nullref_fmt() %varfail_fmt(_type, _name)  		   
 #define %outnullref_fmt(_type)             %nullref_fmt() %outfail_fmt(_type)         
Index: Source/Modules/python.cxx
===================================================================
RCS file: /cvsroot/swig/SWIG/Source/Modules/python.cxx,v
retrieving revision 1.203
diff -u -4 -r1.203 python.cxx
--- Source/Modules/python.cxx	16 Mar 2006 01:46:50 -0000	1.203
+++ Source/Modules/python.cxx	5 Jul 2006 00:50:19 -0000
@@ -39,9 +39,8 @@
 static  File         *f_directors_h = 0;
 static  File         *f_init = 0;
 static  File         *f_shadow_py = 0;
 static  String       *f_shadow = 0;
-static  String       *f_shadow_imports = 0;
 static  String       *f_shadow_stubs = 0;
 
 static  String       *methods;
 static  String       *class_name;
@@ -669,9 +668,8 @@
       }
       Delete(filen); filen = NULL;
 
       f_shadow = NewString("");
-      f_shadow_imports = NewString("");
       f_shadow_stubs = NewString("");
 
       Swig_register_filebyname("shadow",f_shadow);
       Swig_register_filebyname("python",f_shadow);
@@ -817,12 +815,8 @@
     Printf(f_wrappers,"}\n");
     Printf(f_wrappers,"#endif\n");
 
     if (shadow) {
-      /*
-      Printf(f_shadow_imports,"\nimport %s\n", module);
-      Printv(f_shadow_py, f_shadow_imports, "\n",NIL);
-      */
       Printv(f_shadow_py, f_shadow, "\n",NIL);
       Printv(f_shadow_py, f_shadow_stubs, "\n",NIL);
 
       Close(f_shadow_py);
@@ -882,14 +876,11 @@
         }
 
         // finally, output the name of the imported module
 	if (shadowimport) {
-	  if (!options || (!Getattr(options, "noshadow") && !Getattr(options, "noproxy"))) {	    
-	    Printf(import, "_%s\n", modname);
-	    if (!Strstr(f_shadow_imports, import)) {
-	      Printf(f_shadow, "import %s\n", modname);
-	      Printv(f_shadow_imports, import, NULL);
-	    }
+	  if (!options || (!Getattr(options, "noshadow") && !Getattr(options, "noproxy"))) {
+            Printf(import, "%s\n", modname);
+            Printf(f_shadow, "%s", import);
 	  }
 	}
 	
 	Delete(import);
@@ -1154,10 +1145,15 @@
         
       // Do the param type too?
       if (showTypes) {
         type =  SwigType_base(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);
       }
 
       if (name) {
@@ -2793,10 +2789,10 @@
 	  Printf(f_shadow_file,"%s.%s = new_instancemethod(%s.%s,None,%s)\n", 
 		 class_name, symname, module, Swig_name_member(class_name,symname), class_name);
 	}
       }
-      Printf(f_shadow_file,"%s_swigregister = %s.%s_swigregister\n", class_name, module, class_name);
-      Printf(f_shadow_file,"%s_swigregister(%s)\n", class_name, class_name,0);
+
+      Printf(f_shadow_file,"%s.%s_swigregister(%s)\n", module, class_name, class_name);
       
       shadow_indent = 0;
       Printf(f_shadow_file,"%s\n", f_shadow_stubs);
       Clear(f_shadow_stubs);
Index: Source/Swig/misc.c
===================================================================
RCS file: /cvsroot/swig/SWIG/Source/Swig/misc.c,v
retrieving revision 1.57
diff -u -4 -r1.57 misc.c
--- Source/Swig/misc.c	6 Mar 2006 22:51:00 -0000	1.57
+++ Source/Swig/misc.c	5 Jul 2006 00:50:19 -0000
@@ -899,8 +899,26 @@
 }
 #endif
 
 
+
+/* -----------------------------------------------------------------------------
+ * Swig_string_wxpy()
+ *
+ * Drop a leading 'wx' for all wxNames, except for wxEVT*
+ * ----------------------------------------------------------------------------- */
+String *Swig_string_wxpy(String *s) {
+  String* ns = NewStringEmpty();
+  char* cptr = Char(s);
+  if (cptr[0] == 'w' && cptr[1] == 'x') {
+    if ( ! (cptr[2] == 'E' && cptr[3] == 'V' && cptr[4] == 'T')) {
+      ns = NewString(&cptr[2]);
+    }
+  }
+  return ns;
+}
+
+
 /* -----------------------------------------------------------------------------
  * Swig_init()
  *
  * Initialize the SWIG core
@@ -928,8 +946,11 @@
   DohEncoding("undercase", Swig_string_ucase);
   DohEncoding("firstuppercase", Swig_string_first_upper);
   DohEncoding("firstlowercase", Swig_string_first_lower);
 
+  /* wxPython's rename encoder */
+  DohEncoding("wxpy", Swig_string_wxpy);
+
   /* Initialize the swig keys */
   Swig_keys_init();
 
   /* Initialize typemaps */
Index: Lib/python/pyinit.swg
===================================================================
RCS file: /cvsroot/swig/SWIG/Lib/python/pyinit.swg,v
retrieving revision 1.32
diff -u -4 -r1.32 pyinit.swg
--- Lib/python/pyinit.swg	2 Feb 2006 23:48:56 -0000	1.32
+++ Lib/python/pyinit.swg	5 Jul 2006 00:50:19 -0000
@@ -225,13 +225,13 @@
 		       swig_type_info **types,
 		       swig_type_info **types_initial) {
   size_t i;
   for (i = 0; methods[i].ml_name; ++i) {
-    char *c = methods[i].ml_doc;
+    const char *c = methods[i].ml_doc;
     if (c && (c = strstr(c, "swig_ptr: "))) {
       int j;
       swig_const_info *ci = 0;
-      char *name = c + 10;
+      const char *name = c + 10;
       for (j = 0; const_table[j].type; ++j) {
 	if (strncmp(const_table[j].name, name, 
 		    strlen(const_table[j].name)) == 0) {
 	  ci = &(const_table[j]);
Index: Lib/python/pyrun.swg
===================================================================
RCS file: /cvsroot/swig/SWIG/Lib/python/pyrun.swg,v
retrieving revision 1.141
diff -u -4 -r1.141 pyrun.swg
--- Lib/python/pyrun.swg	7 Mar 2006 00:35:17 -0000	1.141
+++ Lib/python/pyrun.swg	5 Jul 2006 00:50:19 -0000
@@ -11,8 +11,12 @@
  * ----------------------------------------------------------------------------- */
 
 /* Common SWIG API */
 
+#if PY_VERSION_HEX < 0x02050000
+typedef int Py_ssize_t;
+#endif
+
 /* for raw pointers */
 #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
 #define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
 #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
@@ -1074,9 +1078,9 @@
   } else {
     void *vptr = 0;
     
     /* here we get the method pointer for callbacks */
-    char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
+    const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
     const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
     if (desc) {
       desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
       if (!desc) return SWIG_ERROR;
Index: Lib/python/pystrings.swg
===================================================================
RCS file: /cvsroot/swig/SWIG/Lib/python/pystrings.swg,v
retrieving revision 1.27
diff -u -4 -r1.27 pystrings.swg
--- Lib/python/pystrings.swg	23 Feb 2006 21:43:33 -0000	1.27
+++ Lib/python/pystrings.swg	5 Jul 2006 00:50:19 -0000
@@ -5,9 +5,9 @@
 SWIGINTERN int
 SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 {
   if (PyString_Check(obj)) {
-    char *cstr; int len;
+    char *cstr; Py_ssize_t len;
     PyString_AsStringAndSize(obj, &cstr, &len);
     if (cptr)  {
       if (alloc) {
 	/*