summaryrefslogtreecommitdiff
path: root/devel/swig13/files/patch-Lib::guile::guiledec.swg
diff options
context:
space:
mode:
Diffstat (limited to 'devel/swig13/files/patch-Lib::guile::guiledec.swg')
-rw-r--r--devel/swig13/files/patch-Lib::guile::guiledec.swg50
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