diff options
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.swg | 74 |
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); +%} |