diff options
Diffstat (limited to 'share/swig/2.0.11/guile/guilemain.i')
-rw-r--r-- | share/swig/2.0.11/guile/guilemain.i | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/share/swig/2.0.11/guile/guilemain.i b/share/swig/2.0.11/guile/guilemain.i new file mode 100644 index 0000000..925b81f --- /dev/null +++ b/share/swig/2.0.11/guile/guilemain.i @@ -0,0 +1,44 @@ +/* ----------------------------------------------------------------------------- + * 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 + +/* Debugger interface (don't change the order of the following lines) */ +#define GDB_TYPE SCM +#include <libguile/gdb_interface.h> +GDB_INTERFACE; + +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 */ +} +%} |