[BACK]Return to stackmachine.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/stackmachine.c between version 1.8 and 1.9

version 1.8, 2001/12/19 23:39:53 version 1.9, 2002/02/24 10:27:18
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/stackmachine.c,v 1.7 2001/05/04 01:06:25 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/stackmachine.c,v 1.8 2001/12/19 23:39:53 takayama Exp $ */
 /*   stackmachin.c */  /*   stackmachin.c */
   
 #include <stdio.h>  #include <stdio.h>
Line 736  void scanner() {
Line 736  void scanner() {
   getokenSM(INIT);    getokenSM(INIT);
   initSystemDictionary();    initSystemDictionary();
   
   #if defined(__CYGWIN__)
     if (sigsetjmp(EnvOfStackMachine,1)) {
   #else
   if (setjmp(EnvOfStackMachine)) {    if (setjmp(EnvOfStackMachine)) {
   #endif
     /* do nothing in the case of error */      /* do nothing in the case of error */
     fprintf(stderr,"An error or interrupt in reading macros, files and command strings.\n");      fprintf(stderr,"An error or interrupt in reading macros, files and command strings.\n");
     exit(10);      exit(10);
Line 796  void scanner() {
Line 800  void scanner() {
   
   
   for (;;) {    for (;;) {
   #if defined(__CYGWIN__)
       if (jval=sigsetjmp(EnvOfStackMachine,1)) {
   #else
     if (jval=setjmp(EnvOfStackMachine)) {      if (jval=setjmp(EnvOfStackMachine)) {
   #endif
       /* ***  The following does not work properly.  ****        /* ***  The following does not work properly.  ****
          if (jval == 2) {           if (jval == 2) {
          if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {           if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {
Line 867  void ctrlC(sig)
Line 875  void ctrlC(sig)
   */    */
   getokenSM(INIT); /* It might fix the bug above. 1992/11/14 */    getokenSM(INIT); /* It might fix the bug above. 1992/11/14 */
   signal(SIGINT,ctrlC);    signal(SIGINT,ctrlC);
   #if defined(__CYGWIN__)
     siglongjmp(EnvOfStackMachine,2);
   #else
   longjmp(EnvOfStackMachine,2); /* returns 2 for ctrl-C */    longjmp(EnvOfStackMachine,2); /* returns 2 for ctrl-C */
   #endif
 }  }
   
 int executeToken(token)  int executeToken(token)
Line 1083  KSexecuteString(s)
Line 1095  KSexecuteString(s)
   
   if (KSPushEnvMode) {    if (KSPushEnvMode) {
     *saved_EnvOfStackMachine = *EnvOfStackMachine;      *saved_EnvOfStackMachine = *EnvOfStackMachine;
   #if defined(__CYGWIN__)
       if (jval = sigsetjmp(EnvOfStackMachine,1)) {
   #else
     if (jval = setjmp(EnvOfStackMachine)) {      if (jval = setjmp(EnvOfStackMachine)) {
   #endif
       *EnvOfStackMachine = *saved_EnvOfStackMachine;        *EnvOfStackMachine = *saved_EnvOfStackMachine;
       if (jval == 2) {        if (jval == 2) {
         if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {          if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {
Line 1096  KSexecuteString(s)
Line 1112  KSexecuteString(s)
     }else{ }      }else{ }
   }else{    }else{
     if (recursive == 0) {      if (recursive == 0) {
   #if defined(__CYGWIN__)
         if (jval=sigsetjmp(EnvOfStackMachine,1)) {
   #else
       if (jval=setjmp(EnvOfStackMachine)) {        if (jval=setjmp(EnvOfStackMachine)) {
   #endif
         if (jval == 2) {          if (jval == 2) {
           if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {            if (ErrorMessageMode == 1 || ErrorMessageMode == 2) {
             pushErrorStack(KnewErrorPacket(SerialCurrent,-1,"User interrupt by ctrl-C."));              pushErrorStack(KnewErrorPacket(SerialCurrent,-1,"User interrupt by ctrl-C."));

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

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