diff options
Diffstat (limited to 'linux-x86/share/swig/guile/guile_scm.swg')
-rw-r--r-- | linux-x86/share/swig/guile/guile_scm.swg | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/linux-x86/share/swig/guile/guile_scm.swg b/linux-x86/share/swig/guile/guile_scm.swg new file mode 100644 index 0000000..16dc8aa --- /dev/null +++ b/linux-x86/share/swig/guile/guile_scm.swg @@ -0,0 +1,46 @@ +/* ----------------------------------------------------------------------------- + * guile_scm.swg + * + * This SWIG interface file is processed if the Guile module is run + * with SCM_ flavor. + * ----------------------------------------------------------------------------- */ + +#define SWIGGUILE_SCM + +%runtime "swigrun.swg" // Common C API type-checking code +%runtime "swigerrors.swg" // SWIG errors + +%runtime "guile_scm_run.swg" +%include <guile.i> + +%runtime %{ + +#define GUILE_MAYBE_VALUES \ + if (gswig_list_p) gswig_result = scm_values(gswig_result); + +#define GUILE_MAYBE_VECTOR \ + if (gswig_list_p) gswig_result = scm_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 = scm_list_n(gswig_result, object, SCM_UNDEFINED); \ + } \ + else \ + gswig_result = scm_append(scm_list_n(gswig_result, scm_list_n(object, SCM_UNDEFINED), SCM_UNDEFINED)); \ + } + +%} + +%insert(init) "swiginit.swg" + +%init %{ +SWIG_GUILE_INIT_STATIC void +SWIG_init(void) +{ + SWIG_InitializeModule(0); + SWIG_PropagateClientData(); +%} |