error.c: no exit, but callback if shared module

This commit is contained in:
h_vogt 2013-03-23 17:58:11 +01:00
parent 4320fcef36
commit b8f475bea8
1 changed files with 15 additions and 6 deletions

View File

@ -13,14 +13,15 @@ Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group
#include <signal.h>
/* global error message buffer */
char ErrorMessage[1024];
#ifdef HAS_WINGUI
void winmessage(char *new_msg);
#elif defined (SHARED_MODULE)
extern void shared_exit(int status);
#endif
/* global error message buffer */
char ErrorMessage[1024];
void
controlled_exit(int status)
@ -28,11 +29,15 @@ controlled_exit(int status)
#ifdef HAS_WINGUI
if (status)
winmessage("Fatal error in NGSPICE");
exit(status);
#elif defined (SHARED_MODULE)
/* do not exit, if shared ngspice, but call back */
shared_exit(status);
#else
if (status)
fprintf(stderr, "\nERROR: fatal error in ngspice, exit(%d)\n", status);
#endif
exit(status);
#endif
}
@ -61,8 +66,12 @@ fatal(void)
(void) signal(SIGQUIT, SIG_DFL);
(void) kill(getpid(), SIGQUIT);
#endif
#if defined (SHARED_MODULE)
/* do not exit, if shared ngspice, but call back */
shared_exit(EXIT_BAD);
#else
exit(EXIT_BAD);
#endif
}