=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/sample_kanlib.c,v retrieving revision 1.2 retrieving revision 1.5 diff -u -p -r1.2 -r1.5 --- OpenXM/src/kxx/sample_kanlib.c 2004/09/05 00:51:18 1.2 +++ OpenXM/src/kxx/sample_kanlib.c 2016/03/31 05:27:34 1.5 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kxx/sample_kanlib.c,v 1.1 2004/02/29 03:00:37 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kxx/sample_kanlib.c,v 1.4 2015/10/08 11:49:38 takayama Exp $ */ /* This is a sample program to use kanlib.a gcc -g -O2 -g -D_BSD_SOURCE sample_kanlib.c -o sample_kanlib -ldl ../kan96xx/Kan/kanlib.a -L../../lib -lgmp -lgc @@ -7,11 +7,13 @@ gcc -g -O2 -g -D_BSD_SOURCE sample_kanlib.c -o sample_ #include #include #include +#include "mysig.h" -#if defined(__CYGWIN__) +// serversm.h is not included. +#if defined(__CYGWIN__) || defined(__MSYS__) #define JMP_BUF sigjmp_buf -#define SETJMP(env) sigsetjmp(env,1) -#define LONGJMP(env,p) siglongjmp(env,p) +#define SETJMP(env) _setjmp(env) +#define LONGJMP(env,p) _longjmp(env,p) #else #define JMP_BUF jmp_buf #define SETJMP(env) setjmp(env) @@ -22,6 +24,7 @@ gcc -g -O2 -g -D_BSD_SOURCE sample_kanlib.c -o sample_ extern int Quiet; extern JMP_BUF EnvOfStackMachine; extern Calling_ctrlC_hook; +extern int RestrictedMode, RestrictedMode_saved; void ctrlC(); @@ -30,14 +33,15 @@ main() { Quiet = 0; KSstart(); - if (signal(SIGINT,SIG_IGN) != SIG_IGN) { - signal(SIGINT,ctrlC); + if (mysignal(SIGINT,SIG_IGN) != SIG_IGN) { + mysignal(SIGINT,ctrlC); } while( fgets(s,1023,stdin) != NULL) { if (SETJMP(EnvOfStackMachine)) { if (!Calling_ctrlC_hook) { - Calling_ctrlC_hook = 1; + Calling_ctrlC_hook = 1; RestrictedMode = 0; KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */ + RestrictedMode = RestrictedMode_saved; } Calling_ctrlC_hook = 0; KSexecuteString(" (Computation is interrupted.) ");