diff options
Diffstat (limited to 'devel/swig13/files/patch-Source::Modules1.1::guile.cxx')
-rw-r--r-- | devel/swig13/files/patch-Source::Modules1.1::guile.cxx | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/devel/swig13/files/patch-Source::Modules1.1::guile.cxx b/devel/swig13/files/patch-Source::Modules1.1::guile.cxx new file mode 100644 index 0000000..56379bc --- /dev/null +++ b/devel/swig13/files/patch-Source::Modules1.1::guile.cxx @@ -0,0 +1,107 @@ +diff -urN ../SWIG1.3a5/Source/Modules1.1/guile.cxx ./Source/Modules1.1/guile.cxx +--- ../SWIG1.3a5/Source/Modules1.1/guile.cxx Wed Sep 20 09:00:56 2000 ++++ ./Source/Modules1.1/guile.cxx Tue Feb 27 06:12:33 2001 +@@ -13,10 +13,10 @@ + * can be used and distributed. + *****************************************************************************/ + +-static char cvsroot[] = "$Header: /cvs/projects/SWIG/Source/Modules1.1/guile.cxx,v 1.68 2000/09/20 14:00:56 mkoeppe Exp $"; ++static char cvsroot[] = "$Header: /cvs/projects/SWIG/Source/Modules1.1/guile.cxx,v 1.68.2.3 2001/02/26 17:57:56 mkoeppe Exp $"; + + /*********************************************************************** +- * $Header: /cvs/projects/SWIG/Source/Modules1.1/guile.cxx,v 1.68 2000/09/20 14:00:56 mkoeppe Exp $ ++ * $Header: /cvs/projects/SWIG/Source/Modules1.1/guile.cxx,v 1.68.2.3 2001/02/26 17:57:56 mkoeppe Exp $ + * + * guile.cxx + * +@@ -252,6 +252,9 @@ + void + GUILE::initialize (void) + { ++ if (CPlusPlus) { ++ Printf(f_runtime, "extern \"C\" {\n\n"); ++ } + switch (linkage) { + case GUILE_LSTYLE_SIMPLE: + /* Simple linkage; we have to export the SWIG_init function. The user can +@@ -328,7 +331,7 @@ + { + SwigType_emit_type_table (f_runtime, f_wrappers); + +- Printf (f_init, "SWIG_Guile_RegisterTypes(swig_types);\n"); ++ Printf (f_init, "SWIG_Guile_RegisterTypes(swig_types, swig_types_initial);\n"); + Printf (f_init, "}\n\n"); + char module_name[256]; + +@@ -341,7 +344,10 @@ + strcpy(module_name,module); + } + emit_linkage (module_name); +- ++ if (CPlusPlus) { ++ Printf(f_init, "\n}\n"); ++ } ++ + if (procdoc) { + Delete(procdoc); + procdoc = NULL; +@@ -662,7 +668,7 @@ + Printv(f_wrappers, ");\n", 0); + Printv(f_wrappers, "}\n", 0); + /* Register it */ +- Printf (f_init, "gh_new_procedure(\"%s\", %s_rest, 0, 0, 1);\n", ++ Printf (f_init, "gh_new_procedure(\"%s\", (SCM (*) ()) %s_rest, 0, 0, 1);\n", + proc_name, wname, numargs-numopt, numopt); + } + else if (emit_setters && struct_member && strlen(Char(proc_name))>3) { +@@ -675,7 +681,7 @@ + struct_member = 2; /* have a setter */ + } + else Printf(f_init, "SCM getter = "); +- Printf (f_init, "gh_new_procedure(\"%s\", %s, %d, %d, 0);\n", ++ Printf (f_init, "gh_new_procedure(\"%s\", (SCM (*) ()) %s, %d, %d, 0);\n", + proc_name, wname, numargs-numopt, numopt); + if (!is_setter) { + /* Strip off "-get" */ +@@ -698,7 +704,7 @@ + } + else { + /* Register the function */ +- Printf (f_init, "gh_new_procedure(\"%s\", %s, %d, %d, 0);\n", ++ Printf (f_init, "gh_new_procedure(\"%s\", (SCM (*) ()) %s, %d, %d, 0);\n", + proc_name, wname, numargs-numopt, numopt); + } + if (procdoc) { +@@ -751,7 +757,7 @@ + + if ((SwigType_type(t) != T_USER) || (is_a_pointer(t))) { + +- Printf (f_wrappers, "SCM %s(SCM s_0) {\n", var_name); ++ Printf (f_wrappers, "static SCM %s(SCM s_0)\n{\n", var_name); + + if (!(Status & STAT_READONLY) && SwigType_type(t) == T_STRING) { + Printf (f_wrappers, "\t char *_temp;\n"); +@@ -821,7 +827,7 @@ + throw_unhandled_guile_type_error (t); + } + Printf (f_wrappers, "\t return gswig_result;\n"); +- Printf (f_wrappers, "}\n"); ++ Printf (f_wrappers, "}\n\n"); + + // Now add symbol to the Guile interpreter + +@@ -829,12 +835,12 @@ + || Status & STAT_READONLY) { + /* Read-only variables become a simple procedure returning the + value. */ +- Printf (f_init, "\t gh_new_procedure(\"%s\", %s, 0, 1, 0);\n", ++ Printf (f_init, "\t gh_new_procedure(\"%s\", (SCM (*) ()) %s, 0, 1, 0);\n", + proc_name, var_name); + } + else { + /* Read/write variables become a procedure with setter. */ +- Printf (f_init, "\t{ SCM p = gh_new_procedure(\"%s\", %s, 0, 1, 0);\n", ++ Printf (f_init, "\t{ SCM p = gh_new_procedure(\"%s\", (SCM (*) ()) %s, 0, 1, 0);\n", + proc_name, var_name); + Printf (f_init, "\t gh_define(\"%s\", " + "scm_make_procedure_with_setter(p, p)); }\n", |