summaryrefslogtreecommitdiff
path: root/devtools/swigwin-1.3.34/Lib/guile/guile_gh.swg
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/swigwin-1.3.34/Lib/guile/guile_gh.swg')
-rw-r--r--devtools/swigwin-1.3.34/Lib/guile/guile_gh.swg74
1 files changed, 74 insertions, 0 deletions
diff --git a/devtools/swigwin-1.3.34/Lib/guile/guile_gh.swg b/devtools/swigwin-1.3.34/Lib/guile/guile_gh.swg
new file mode 100644
index 0000000..6412a4c
--- /dev/null
+++ b/devtools/swigwin-1.3.34/Lib/guile/guile_gh.swg
@@ -0,0 +1,74 @@
+/* -----------------------------------------------------------------------------
+ * See the LICENSE file for information on copyright, usage and redistribution
+ * of SWIG, and the README file for authors - http://www.swig.org/release.html.
+ *
+ * guile_gh.swg
+ *
+ * This SWIG interface file is processed if the Guile module is run
+ * with gh_ flavor.
+ * ----------------------------------------------------------------------------- */
+
+#define SWIGGUILE_GH
+
+%runtime "swigrun.swg"
+%runtime "guile_gh_run.swg"
+
+#define SWIG_convert_short(o) \
+ SWIG_convert_integer(o, - (1 << (8 * sizeof(short) - 1)), \
+ (1 << (8 * sizeof(short) - 1)) - 1, \
+ FUNC_NAME, $argnum)
+#define SWIG_convert_unsigned_short(o) \
+ SWIG_convert_unsigned_integer(o, 0, \
+ (1 << (8 * sizeof(short))) - 1, \
+ FUNC_NAME, $argnum)
+#define SWIG_convert_unsigned_int(o) \
+ SWIG_convert_unsigned_integer(o, 0, UINT_MAX, \
+ FUNC_NAME, $argnum)
+
+#define gh_scm2short(a) SWIG_convert_short(a)
+#define gh_scm2ushort(a) SWIG_convert_unsigned_short(a)
+#define gh_scm2uint(a) SWIG_convert_unsigned_int(a)
+
+%include <guile.i>
+
+%runtime %{
+
+/* 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);
+
+#define SWIG_APPEND_VALUE(object) \
+ if (gswig_result == SCM_UNSPECIFIED) { \
+ gswig_result = object; \
+ } else { \
+ if (!gswig_list_p) { \
+ gswig_list_p = 1; \
+ gswig_result = gh_list(gswig_result, object, SCM_UNDEFINED); \
+ } \
+ else \
+ gswig_result = gh_append2(gswig_result, \
+ gh_list(object, SCM_UNDEFINED)); \
+ }
+
+%}
+
+%init "swiginit.swg"
+
+%init %{
+static int _swig_module_smob_tag;
+
+SWIG_GUILE_INIT_STATIC void
+SWIG_init(void)
+{
+
+ SWIG_InitializeModule(0);
+ swig_module.clientdata = (void *) &_swig_module_smob_tag;
+
+ SWIG_Guile_Init(&swig_module);
+%}