diff options
Diffstat (limited to 'devel/swig13/files/patch-Lib::guile::guiledec.swg')
-rw-r--r-- | devel/swig13/files/patch-Lib::guile::guiledec.swg | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/devel/swig13/files/patch-Lib::guile::guiledec.swg b/devel/swig13/files/patch-Lib::guile::guiledec.swg index 970c19b33ca1..b574debbd13e 100644 --- a/devel/swig13/files/patch-Lib::guile::guiledec.swg +++ b/devel/swig13/files/patch-Lib::guile::guiledec.swg @@ -1,7 +1,47 @@ -diff -urN ../SWIG1.3a5/Lib/guile/guiledec.swg ./Lib/guile/guiledec.swg ---- ../SWIG1.3a5/Lib/guile/guiledec.swg Thu Sep 21 16:06:17 2000 -+++ ./Lib/guile/guiledec.swg Tue Feb 27 06:12:33 2001 -@@ -78,10 +78,9 @@ +Index: SWIG/Lib/guile/guiledec.swg +diff -u SWIG/Lib/guile/guiledec.swg:1.13 SWIG/Lib/guile/guiledec.swg:1.13.2.4 +--- Lib/guile/guiledec.swg:1.13 Thu Sep 21 16:06:17 2000 ++++ Lib/guile/guiledec.swg Fri Mar 2 07:53:02 2001 +@@ -27,17 +27,29 @@ + #define GH_NOT_PASSED SCM_UNDEFINED + #define GH_UNSPECIFIED SCM_UNSPECIFIED + +-#define GUILE_APPEND_RESULT(object) \ +- if (gswig_result == GH_UNSPECIFIED) \ +- gswig_result = object; \ +- else { \ +- if (!gh_pair_p(gswig_result)) \ +- gswig_result = gh_list(gswig_result, object, GH_NOT_PASSED); \ +- else \ +- gswig_result = gh_append2(gswig_result, \ +- gh_list(object, GH_NOT_PASSED)); \ ++#define GUILE_APPEND_RESULT(object) \ ++ if (gswig_result == GH_UNSPECIFIED) \ ++ gswig_result = object; \ ++ else { \ ++ if (!gswig_list_p) { \ ++ gswig_list_p = 1; \ ++ gswig_result = gh_list(gswig_result, object, GH_NOT_PASSED); \ ++ } \ ++ else \ ++ gswig_result = gh_append2(gswig_result, \ ++ gh_list(object, GH_NOT_PASSED)); \ + } + ++/* scm_values was implemented on C level in 1.4.1, and the prototype ++ is not included in libguile.h, so play safe and lookup `values'... */ ++#define GUILE_MAYBE_VALUES \ ++ if (gswig_list_p) \ ++ gswig_result = gh_apply(gh_lookup("values"), gswig_result); ++ ++#define GUILE_MAYBE_VECTOR \ ++ if (gswig_list_p) \ ++ gswig_result = gh_list_to_vector(gswig_result); ++ + static char * + GSWIG_scm2str (SCM s) + { +@@ -78,10 +90,9 @@ size_t tag; } swig_type_info; @@ -10,7 +50,7 @@ diff -urN ../SWIG1.3a5/Lib/guile/guiledec.swg ./Lib/guile/guiledec.swg SWIGSTATIC void -SWIG_Guile_RegisterTypes (swig_type_info **table); +SWIG_Guile_RegisterTypes (swig_type_info **table, -+ swig_type_info **init); ++ swig_type_info **init); /* Register a new type-mapping with the type-checker. origtype is the original datatype and newtype is an equivalent type. cast is optional |