=================================================================== RCS file: /home/cvs/OpenXM/src/k097/ki.c,v retrieving revision 1.1 retrieving revision 1.4 diff -u -p -r1.1 -r1.4 --- OpenXM/src/k097/ki.c 1999/10/08 02:12:15 1.1 +++ OpenXM/src/k097/ki.c 2002/02/24 10:27:21 1.4 @@ -1,3 +1,4 @@ +/* $OpenXM: OpenXM/src/k097/ki.c,v 1.3 2001/01/28 02:40:04 takayama Exp $ */ /* ki.c ( kx interpreter ) */ #include @@ -13,11 +14,21 @@ char *getLOAD_K_PATH(); /* from d.h */ +#if defined(__CYGWIN__) +#define JMP_BUF sigjmp_buf +#define SETJMP(env) sigsetjmp(env,1) +#define LONGJMP(env,p) siglongjmp(env,p) +#else +#define JMP_BUF jmp_buf +#define SETJMP(env) setjmp(env) +#define LONGJMP(env,p) longjmp(env,p) +#endif + #ifdef CALLASIR #include "ak0.h" #endif -extern jmp_buf KCenvOfParser; +extern JMP_BUF KCenvOfParser; char Ktmp[10240]; int Ksize = 10240; @@ -34,7 +45,7 @@ sendKan(int p) { struct object obj; int result; signal(SIGINT,SIG_IGN); /* Don't jump to ctrlC(). */ - if (p == 10) {printf("In(%d)=",n++); return;} + if (p == 10) {printf("In(%d)= ",n++); return;} if (p == 0 && DebugCompiler) printf("sendKan[%s]\n",Kbuff); /* printf("sendKan[%s]\n",Kbuff); */ if (strlen(Kbuff) != 0) { @@ -66,7 +77,7 @@ sendKan(int p) { } #define AFO #ifdef AFO - if (setjmp(KCenvOfParser)) { + if (SETJMP(KCenvOfParser)) { fprintf(stderr,"Error: Goto the top level.\n"); parseAfile(stdin); KCparse(); @@ -75,7 +86,7 @@ sendKan(int p) { /* However, it should be rewrited in a future. */ }else{ /* fprintf(stderr,"setjmp\n"); */ } #endif - if (p == 0 && Interactive) printf("In(%d)=",n++); + if (p == 0 && Interactive) printf("In(%d)= ",n++); Kpt=0; Kbuff[0] = '\0'; }