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

Diff for /OpenXM/src/kxx/sm1stackmachine.c between version 1.5 and 1.9

version 1.5, 2005/07/18 10:55:16 version 1.9, 2020/10/07 07:47:23
Line 1 
Line 1 
 #include <stdio.h>  #include <stdio.h>
 #include <setjmp.h>  #include <setjmp.h>
   #include <stdlib.h>
 #include "ox_kan.h"  #include "ox_kan.h"
 #include "serversm.h"  #include "serversm.h"
 extern int OXprintMessage;  extern int OXprintMessage;
 extern char *MsgStackTrace;  extern char *MsgStackTrace;
 extern char *MsgSourceTrace;  extern char *MsgSourceTrace;
   extern struct object *MsgStackTraceInArrayp;
   
   void KSstart(); // kan96xx/Kan/datatype.h
   int KSexecuteString(char *s); // kan96xx/Kan/datatype.h
   int Kan_pushCMOFromStream(FILE2 *fp); //kan96xx/Kan/plugin.h
   int Kan_popCMOToStream(FILE2 *fp,int serial); //
   int KgetCmoTagOfObject(struct object obj);    //
   int KSstackPointer(void); //kan96xx/Kan/extern.h
   int Kan_setMathCapToStream(FILE2 *fp,struct object ob); // kan96xx/plugin/cmo.c
   
   
 /*  server stack machine */  /*  server stack machine */
   
 int Sm1_start(int argc, char *fnames[],char *myname) {  int Sm1_start(int argc, char *fnames[],char *myname) {
Line 140  int Sm1_popCMO(ox_stream fp,int serial)
Line 151  int Sm1_popCMO(ox_stream fp,int serial)
 int Sm1_pushError2(int serial, int no, char *s)  int Sm1_pushError2(int serial, int no, char *s)
 {  {
   struct object ob = OINIT;    struct object ob = OINIT;
     struct object core = OINIT;
     struct object core1 = OINIT;
   char *ss;    char *ss;
   
     ss = (char *)sGC_malloc(strlen(s)+1);
     strcpy(ss,s);
     /*
   char *error_message="<ox103:error_message>";    char *error_message="<ox103:error_message>";
   char *message="<ox103:message>";    char *message="<ox103:message>";
   char *stack_trace="<ox103:stack_trace>";    char *stack_trace="<ox103:stack_trace>";
Line 171  int Sm1_pushError2(int serial, int no, char *s)
Line 188  int Sm1_pushError2(int serial, int no, char *s)
         strcat(ss,source_trace2);          strcat(ss,source_trace2);
   }    }
   strcat(ss,error_message2);    strcat(ss,error_message2);
   ob = KnewErrorPacket(serial,no,ss);    */
   
     if (MsgStackTraceInArrayp != NULL) {
           core = KSnewObjectArray(2);
           core1 = KSnewObjectArray(2);
           putoa(core1,0,KpoString("where"));  /* keyword */
           putoa(core1,1,(*MsgStackTraceInArrayp));
       putoa(core,0,core1);
       core1 = KSnewObjectArray(2);
           putoa(core1,0,KpoString("reason_of_error")); /* keyword */
           putoa(core1,1,KpoString(s));
           putoa(core,1,core1);
     }else{
           core = KSnewObjectArray(0);
     }
     ob = KSnewObjectArray(4);
     putoa(ob,0,KpoInteger(serial)); putoa(ob,1,KpoInteger(no));
     putoa(ob,2,KpoString(ss));
     putoa(ob,3,core);
   
     ob = KnewErrorPacketObj(ob);
   KSpush(ob);    KSpush(ob);
 }  }
   

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

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