--- a/sdl.c Wed Nov 17 07:57:28 2004 +0000
+++ b/sdl.c Wed Nov 17 08:11:24 2004 +0000
@@ -119,6 +119,17 @@
{
/* Own hand-made parachute for the cases of failed assertions. */
SDL_CALL SDL_Quit();
+
+ switch (sig) {
+ case SIGSEGV:
+ case SIGFPE:
+ signal(sig, SIG_DFL);
+ raise(sig);
+ break;
+
+ default:
+ break;
+ }
}
#endif
@@ -141,6 +152,8 @@
#ifdef UNIX
signal(SIGABRT, SdlAbort);
+ signal(SIGSEGV, SdlAbort);
+ signal(SIGFPE, SdlAbort);
#endif
return NULL;
@@ -154,6 +167,8 @@
SDL_CALL SDL_Quit();
#ifdef UNIX
signal(SIGABRT, SIG_DFL);
+ signal(SIGSEGV, SIG_DFL);
+ signal(SIGFPE, SIG_DFL);
#endif
}
}