=================================================================== RCS file: /home/cvs/OpenXM/src/k097/ki.c,v retrieving revision 1.5 retrieving revision 1.9 diff -u -p -r1.5 -r1.9 --- OpenXM/src/k097/ki.c 2003/08/22 16:08:20 1.5 +++ OpenXM/src/k097/ki.c 2015/10/10 11:29:46 1.9 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/k097/ki.c,v 1.4 2002/02/24 10:27:21 takayama Exp $ */ +/* $OpenXM: OpenXM/src/k097/ki.c,v 1.8 2013/11/06 06:23:23 takayama Exp $ */ /* ki.c ( kx interpreter ) */ #include @@ -11,6 +11,8 @@ #include "gradedset.h" #include #include +#include +#include char *getLOAD_K_PATH(); /* from d.h */ @@ -42,10 +44,11 @@ extern int DebugMode; sendKan(int p) { static int n = 2; extern int Interactive; - struct object obj; + struct object obj = OINIT; int result; + extern int InSendmsg2; 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 0;} if (p == 0 && DebugCompiler) printf("sendKan[%s]\n",Kbuff); /* printf("sendKan[%s]\n",Kbuff); */ if (strlen(Kbuff) != 0) { @@ -56,7 +59,7 @@ sendKan(int p) { } /* fprintf(stderr,"r=%d ",result); */ if (result == -1) { - K00recoverFromError(); + K00recoverFromError(); InSendmsg2 = 0; fprintf(stderr,"--- Engine error or interrupt : "); if (DebugMode) { signal(SIGINT,SIG_DFL); @@ -78,6 +81,7 @@ sendKan(int p) { #define AFO #ifdef AFO if (SETJMP(KCenvOfParser)) { + InSendmsg2=0; fprintf(stderr,"Error: Goto the top level.\n"); parseAfile(stdin); KCparse(); @@ -155,7 +159,7 @@ execFile(char *s) fprintf(stderr,"Fatal error: Cannot open the system macro %s in %s, %s, %s nor %s.\n", s,tname2,tname3,tname4,tname); exit(11); - return; + return 0; } } }