diff options
Diffstat (limited to 'linux-x86/share/swig/guile/guilemain.i')
-rw-r--r-- | linux-x86/share/swig/guile/guilemain.i | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/linux-x86/share/swig/guile/guilemain.i b/linux-x86/share/swig/guile/guilemain.i new file mode 100644 index 0000000..809154e --- /dev/null +++ b/linux-x86/share/swig/guile/guilemain.i @@ -0,0 +1,39 @@ +/* ----------------------------------------------------------------------------- + * guilemain.i + * + * The main functions for a user augmented guile + * version that can handle wrapped calls as generated by SWIG + * ----------------------------------------------------------------------------- */ + +%{ +#include <libguile.h> + +#ifdef __cplusplus +extern "C" { +#endif + +static void +inner_main(void *closure, int argc, char **argv) +{ +#ifdef SWIGINIT + SWIGINIT +#else + SWIG_init(); /* SWIG init function */ +#endif + scm_shell(argc, argv); /* scheme interpreter */ + /* never reached: scm_shell will perform an exit */ +} + +#ifdef __cplusplus +} +#endif + +int +main(int argc, char **argv) +{ + /* put any default initialisation code here: e.g. exit handlers */ + scm_boot_guile(argc, argv, inner_main, 0); /* make a stack entry for the + garbage collector */ + return 0; /* never reached, but avoids a warning */ +} +%} |