Added a new patch that changes addtofunc to pythonAppend and adds pythonPrepend. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			166 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: Source/Swig/swig.h
 | |
| ===================================================================
 | |
| RCS file: /cvsroot/SWIG/Source/Swig/swig.h,v
 | |
| retrieving revision 1.81
 | |
| diff -u -4 -r1.81 swig.h
 | |
| --- Source/Swig/swig.h	27 Jan 2004 23:39:35 -0000	1.81
 | |
| +++ Source/Swig/swig.h	30 Jan 2004 22:22:10 -0000
 | |
| @@ -364,8 +364,10 @@
 | |
|  extern void Swig_print_tags(File *obj, Node *root);
 | |
|  extern void Swig_print_tree(Node *obj);
 | |
|  extern void Swig_print_node(Node *obj);
 | |
|  
 | |
| +extern void Swig_print_xml(Node *obj, String* filename);
 | |
| +
 | |
|  /* -- Wrapper function Object */
 | |
|  
 | |
|  typedef struct {
 | |
|    Hash      *localh;
 | |
| Index: Source/Modules/main.cxx
 | |
| ===================================================================
 | |
| RCS file: /cvsroot/SWIG/Source/Modules/main.cxx,v
 | |
| retrieving revision 1.33
 | |
| diff -u -4 -r1.33 main.cxx
 | |
| --- Source/Modules/main.cxx	22 Jan 2004 22:42:15 -0000	1.33
 | |
| +++ Source/Modules/main.cxx	30 Jan 2004 22:22:11 -0000
 | |
| @@ -91,15 +91,17 @@
 | |
|                               -w+321,401,-402 \n\
 | |
|                                               \n\
 | |
|                         where code 321(+) is added, and 401(no sign) and 402(-) \n\
 | |
|                         are suppressed. See documentation for code meanings.\n\
 | |
| +     -xmlout <file>  - Write an XML version of the parse tree to file after normal processing\n\
 | |
|  \n";
 | |
|  
 | |
|  // Local variables
 | |
|  static int     freeze = 0;
 | |
|  static String  *lang_config = 0;
 | |
|  static char    *cpp_extension = (char *) "cxx";
 | |
|  static String  *outdir = 0;
 | |
| +static String  *xmlout = 0;
 | |
|  
 | |
|  // -----------------------------------------------------------------------------
 | |
|  // check_suffix(char *name)
 | |
|  //
 | |
| @@ -215,8 +217,9 @@
 | |
|    char   *includefiles[256];
 | |
|    int     includecount = 0;
 | |
|    int     dump_tags = 0;
 | |
|    int     dump_tree = 0;
 | |
| +  int     dump_xml = 0;
 | |
|    int     browse = 0;
 | |
|    int     dump_typedef = 0;
 | |
|    int     dump_classes = 0;
 | |
|    int     werror = 0;
 | |
| @@ -483,8 +486,20 @@
 | |
|  	    Swig_mark_arg(i);
 | |
|  	  } else if (strcmp(argv[i],"-dump_tree") == 0) {
 | |
|  	    dump_tree = 1;
 | |
|  	    Swig_mark_arg(i);
 | |
| +	  } else if (strcmp(argv[i],"-dump_xml") == 0) {
 | |
| +	    dump_xml = 1;
 | |
| +	    Swig_mark_arg(i);
 | |
| +	  } else if (strcmp(argv[i],"-xmlout") == 0) {
 | |
| +	    dump_xml = 1;
 | |
| +	    Swig_mark_arg(i);
 | |
| +	    if (argv[i+1]) {
 | |
| +	      xmlout = NewString(argv[i+1]);	    
 | |
| +	      Swig_mark_arg(i+1);
 | |
| +	    } else {
 | |
| +	      Swig_arg_error();
 | |
| +	    }
 | |
|  	  } else if (strcmp(argv[i],"-nocontract") == 0) {
 | |
|  	    Swig_mark_arg(i);
 | |
|  	    Swig_contract_mode_set(0);
 | |
|  	  } else if (strcmp(argv[i],"-browse") == 0) {
 | |
| @@ -734,8 +749,11 @@
 | |
|        }
 | |
|      }
 | |
|      if (dump_tree) {
 | |
|        Swig_print_tree(top);
 | |
| +    }
 | |
| +    if (dump_xml) {
 | |
| +      Swig_print_xml(top, xmlout);
 | |
|      }
 | |
|    }
 | |
|    if (tm_debug) Swig_typemap_debug();
 | |
|    if (memory_debug) DohMemoryDebug();
 | |
| Index: Source/Modules/xml.cxx
 | |
| ===================================================================
 | |
| RCS file: /cvsroot/SWIG/Source/Modules/xml.cxx,v
 | |
| retrieving revision 1.10
 | |
| diff -u -4 -r1.10 xml.cxx
 | |
| --- Source/Modules/xml.cxx	22 Jan 2004 22:42:18 -0000	1.10
 | |
| +++ Source/Modules/xml.cxx	30 Jan 2004 22:22:11 -0000
 | |
| @@ -197,18 +197,19 @@
 | |
|  					Replaceall( o, "&", "&" );
 | |
|  					Replaceall( o, "<", "<" );
 | |
|  					Replaceall( o, "\"", """ );
 | |
|  					Replaceall( o, "\\", "\\\\" );
 | |
| -					Printf(out,"<attribute name=\"%s\" value=\"%s\" id=\"%ld\" addr=\"%x\" />\n", ck, o, ++id, o );
 | |
| +                                        Replaceall( o, "\n", "
" );
 | |
| +                                        Printf(out,"<attribute name=\"%s\" value=\"%s\" id=\"%ld\" addr=\"%x\" />\n", ck, o, ++id, o );
 | |
|  					Delete(o);
 | |
|  					Delete(ck);
 | |
|  				}
 | |
|  				else
 | |
|  				{
 | |
|  					o = Getattr(obj,k);
 | |
|  					String *ck = NewString(k);
 | |
|  					Replaceall( ck, ":", "_" );
 | |
| -					Printf(out,"<attribute name=\"%s\" value=\"%x\" id=\"%ld\" addr=\"%x\" />\n", ck, o, ++id, o );
 | |
| +                                        Printf(out,"<attribute name=\"%s\" value=\"%x\" id=\"%ld\" addr=\"%x\" />\n", ck, o, ++id, o );
 | |
|  					Delete(ck);
 | |
|  				}
 | |
|  			}
 | |
|  			ki = Next(ki);
 | |
| @@ -318,11 +319,10 @@
 | |
|  		{
 | |
|  			print_indent(0);
 | |
|  			Printf( out, "<%ssitem id=\"%ld\" addr=\"%x\" >\n", markup, ++id, n.item );
 | |
|  			Xml_print_attributes( n.item );
 | |
| -			Printf( out, "</%ssitem >\n", markup );
 | |
|  			print_indent(0);
 | |
| -			Printf( out, " />\n" );
 | |
| +			Printf( out, "</%ssitem >\n", markup );
 | |
|  			n = Next(n);
 | |
|  		}
 | |
|  		indent_level -= 4;
 | |
|  		print_indent(0);
 | |
| @@ -336,5 +336,36 @@
 | |
|          return new XML();
 | |
|  }
 | |
|  extern "C" Language * swig_xml( void ) {
 | |
|          return new_swig_xml();
 | |
| +}
 | |
| +
 | |
| +
 | |
| +/* -----------------------------------------------------------------------------
 | |
| + * Swig_print_xml
 | |
| + *
 | |
| + * Dump an XML version of the parse tree.  This is different from using the -xml
 | |
| + * language module normally as it allows the real language module to process the
 | |
| + * tree first, possibly stuffing in new attributes, so the XML that is output ends
 | |
| + * up being a post-processing version of the tree.
 | |
| + * ----------------------------------------------------------------------------- */
 | |
| +
 | |
| +void 
 | |
| +Swig_print_xml(DOH *obj, String* filename)
 | |
| +{
 | |
| +    XML xml;
 | |
| +    xmllite = 1;
 | |
| +
 | |
| +    if (! filename) {
 | |
| +        out = stdout;
 | |
| +    }
 | |
| +    else {
 | |
| +        out = NewFile(filename, "w");
 | |
| +        if (!out) {
 | |
| +            Printf(stderr,"*** Can't open '%s'\n", filename);
 | |
| +            SWIG_exit(EXIT_FAILURE);
 | |
| +        }
 | |
| +    }
 | |
| +    
 | |
| +    Printf( out, "<?xml version=\"1.0\" ?> \n" );
 | |
| +    xml.Xml_print_tree(obj);
 | |
|  }
 |