All of guile's interface files now use the scm interface. This should not affect any users. Swig generated code using the scm interface can be mixed with gh interface using user code. It does simplify maintenance of the guile swig code though.
45 lines
1.2 KiB
Text
45 lines
1.2 KiB
Text
/* -----------------------------------------------------------------------------
|
|
* 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 "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_listify(gswig_result, object, SCM_UNDEFINED); \
|
|
} \
|
|
else \
|
|
gswig_result = scm_append(scm_listify(gswig_result, scm_listify(object, SCM_UNDEFINED), SCM_UNDEFINED)); \
|
|
}
|
|
|
|
%}
|
|
|
|
%insert(init) "swiginit.swg"
|
|
|
|
%init %{
|
|
SWIG_GUILE_INIT_STATIC void
|
|
SWIG_init(void)
|
|
{
|
|
SWIG_InitializeModule(0);
|
|
SWIG_PropagateClientData();
|
|
%}
|