=================================================================== RCS file: /home/cvs/OpenXM/src/k097/ki.c,v retrieving revision 1.3 retrieving revision 1.5 diff -u -p -r1.3 -r1.5 --- OpenXM/src/k097/ki.c 2001/01/28 02:40:04 1.3 +++ OpenXM/src/k097/ki.c 2003/08/22 16:08:20 1.5 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/k097/ki.c,v 1.2 2000/01/21 03:01:25 takayama Exp $ */ +/* $OpenXM: OpenXM/src/k097/ki.c,v 1.4 2002/02/24 10:27:21 takayama Exp $ */ /* ki.c ( kx interpreter ) */ #include @@ -14,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; @@ -67,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(); @@ -88,7 +98,7 @@ char *s; if (strlen(s)+Kpt >= Ksize) { Ksize = Ksize*2; t = (char *)GC_malloc(sizeof(char)*Ksize); - if (t == (char *)NULL) { fprintf(stderr,"No memory."); exit();} + if (t == (char *)NULL) { fprintf(stderr,"No memory."); exit(1);} strcpy(t,Kbuff); Kbuff = t; } strcpy(&(Kbuff[Kpt]),s);