Add exception support for Guile.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@410 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
812078fadb
commit
015339bf5f
1 changed files with 31 additions and 3 deletions
|
|
@ -138,9 +138,37 @@ static void _SWIG_exception(int code, char *msg) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SWIGGUILE
|
#ifdef SWIGGUILE
|
||||||
%echo %{
|
%{
|
||||||
exception.i : Guile not currently supported.
|
static void _SWIG_exception (int code, const char *msg,
|
||||||
|
const char *subr) {
|
||||||
|
#define ERROR(scmerr) \
|
||||||
|
scm_error(gh_symbol2scm((char *) (scmerr)), \
|
||||||
|
(char *) subr, (char *) msg, \
|
||||||
|
SCM_EOL, SCM_BOOL_F)
|
||||||
|
#define MAP(swigerr, scmerr) \
|
||||||
|
case swigerr: \
|
||||||
|
ERROR(scmerr); \
|
||||||
|
break
|
||||||
|
switch (code) {
|
||||||
|
MAP(SWIG_MemoryError, "swig-memory-error");
|
||||||
|
MAP(SWIG_IOError, "swig-io-error");
|
||||||
|
MAP(SWIG_RuntimeError, "swig-runtime-error");
|
||||||
|
MAP(SWIG_IndexError, "swig-index-error");
|
||||||
|
MAP(SWIG_TypeError, "swig-type-error");
|
||||||
|
MAP(SWIG_DivisionByZero, "swig-division-by-zero");
|
||||||
|
MAP(SWIG_OverflowError, "swig-overflow-error");
|
||||||
|
MAP(SWIG_SyntaxError, "swig-syntax-error");
|
||||||
|
MAP(SWIG_ValueError, "swig-value-error");
|
||||||
|
MAP(SWIG_SystemError, "swig-system-error");
|
||||||
|
default:
|
||||||
|
ERROR("swig-error");
|
||||||
|
}
|
||||||
|
#undef ERROR
|
||||||
|
#undef MAP
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SWIG_exception(a,b) _SWIG_exception(a, b, SCHEME_NAME)
|
||||||
%}
|
%}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* exception.i ends here */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue