You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.2 KiB
75 lines
2.2 KiB
5 years ago
|
/* -----------------------------------------------------------------------------
|
||
|
* 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);
|
||
|
%}
|