[BACK]Return to ki.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097

Diff for /OpenXM/src/k097/ki.c between version 1.9 and 1.10

version 1.9, 2015/10/10 11:29:46 version 1.10, 2016/03/31 05:27:34
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/k097/ki.c,v 1.8 2013/11/06 06:23:23 takayama Exp $ */  /* $OpenXM: OpenXM/src/k097/ki.c,v 1.9 2015/10/10 11:29:46 takayama Exp $ */
 /* ki.c    ( kx interpreter )  */  /* ki.c    ( kx interpreter )  */
   
 #include <stdio.h>  #include <stdio.h>
Line 13 
Line 13 
 #include <signal.h>  #include <signal.h>
 #include <string.h>  #include <string.h>
 #include <stdlib.h>  #include <stdlib.h>
   #include "mysig.h"
   
 char *getLOAD_K_PATH();  /* from d.h */  char *getLOAD_K_PATH();  /* from d.h */
   
Line 47  sendKan(int p) {
Line 48  sendKan(int p) {
   struct object obj = OINIT;    struct object obj = OINIT;
   int result;    int result;
   extern int InSendmsg2;    extern int InSendmsg2;
   signal(SIGINT,SIG_IGN); /* Don't jump to ctrlC(). */    mysignal(SIGINT,SIG_IGN); /* Don't jump to ctrlC(). */
   if (p == 10) {printf("In(%d)= ",n++); return 0;}    if (p == 10) {printf("In(%d)= ",n++); return 0;}
   if (p == 0 && DebugCompiler) printf("sendKan[%s]\n",Kbuff);    if (p == 0 && DebugCompiler) printf("sendKan[%s]\n",Kbuff);
   /* printf("sendKan[%s]\n",Kbuff);   */    /* printf("sendKan[%s]\n",Kbuff);   */
   if (strlen(Kbuff) != 0) {    if (strlen(Kbuff) != 0) {
     signal(SIGINT,SIG_DFL);      mysignal(SIGINT,SIG_DFL);
     result = KSexecuteString(Kbuff);      result = KSexecuteString(Kbuff);
     /* fprintf(stderr,"r=%d ",result);  */      /* fprintf(stderr,"r=%d ",result);  */
     signal(SIGINT,SIG_IGN); /* Reset SIGINT. Don't jump to ctrlC(). */      mysignal(SIGINT,SIG_IGN); /* Reset SIGINT. Don't jump to ctrlC(). */
   }    }
   /* fprintf(stderr,"r=%d ",result); */    /* fprintf(stderr,"r=%d ",result); */
   if (result == -1) {    if (result == -1) {
     K00recoverFromError();  InSendmsg2 = 0;      K00recoverFromError();  InSendmsg2 = 0;
     fprintf(stderr,"--- Engine error or interrupt : ");      fprintf(stderr,"--- Engine error or interrupt : ");
     if (DebugMode) {      if (DebugMode) {
       signal(SIGINT,SIG_DFL);        mysignal(SIGINT,SIG_DFL);
       KSexecuteString("db.DebugStack setstack ");        KSexecuteString("db.DebugStack setstack ");
       signal(SIGINT,SIG_IGN); /* Reset SIGINT. Don't jump to ctrlC(). */        mysignal(SIGINT,SIG_IGN); /* Reset SIGINT. Don't jump to ctrlC(). */
       obj = KSpop();        obj = KSpop();
       signal(SIGINT,SIG_DFL);        mysignal(SIGINT,SIG_DFL);
       KSexecuteString("stdstack ");        KSexecuteString("stdstack ");
       signal(SIGINT,SIG_IGN); /* Reset SIGINT. Don't jump to ctrlC(). */        mysignal(SIGINT,SIG_IGN); /* Reset SIGINT. Don't jump to ctrlC(). */
       if (obj.tag == Sdollar) {        if (obj.tag == Sdollar) {
         fprintf(stderr,"%s\n",obj.lc.str);          fprintf(stderr,"%s\n",obj.lc.str);
         fprintf(stderr,"\n");          fprintf(stderr,"\n");

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>