diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index f0f5ee1da55d14a055175d74ba625bc738e94fe2..87078c96ec2adafad4f68fe16e9bb3a1290aeacf 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -39,6 +39,10 @@ #define JAVASCRIPT #endif +#ifdef __unix__ +#include <signal.h> +#endif + #include "sbbs.h" JSRuntime* js_runtime; @@ -616,16 +620,16 @@ long js_exec(const char *fname, char** args) return(result); } -void break_handler(void) +void break_handler(int type) { - fprintf(stderr,"\n-> Terminated Locally <-\n"); + fprintf(stderr,"\n-> Terminated Locally (%d)<-\n",type); terminated=TRUE; } #if defined(_WIN32) BOOL WINAPI ControlHandler(DWORD CtrlType) { - break_handler(); + break_handler((int)CtrlType); return TRUE; } #endif @@ -749,6 +753,10 @@ int main(int argc, char **argv, char** environ) /* Install Ctrl-C/Break signal handler here */ #if defined(_WIN32) SetConsoleCtrlHandler(ControlHandler, TRUE /* Add */); +#elif defined(__unix__) + signal(SIGQUIT,break_handler); + signal(SIGINT,break_handler); + signal(SIGTERM,break_handler); #endif result=js_exec(module,&argv[argn]);