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

Diff for /OpenXM/src/kxx/ox_texmacs.c between version 1.40 and 1.42

version 1.40, 2016/08/24 22:38:12 version 1.42, 2018/09/07 01:21:31
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.39 2016/03/31 05:27:34 takayama Exp $ */  /* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.41 2018/09/07 00:28:53 takayama Exp $ */
   
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
Line 29 
Line 29 
 #define  V_TEXMACS    1  #define  V_TEXMACS    1
 #define  V_CFEP       2  #define  V_CFEP       2
 #define  V_QFEP       3  #define  V_QFEP       3
   #define  V_SAGE       4
 int View       = V_TEXMACS ;  int View       = V_TEXMACS ;
   
 char *Data_begin_v[] = {  char *Data_begin_v[] = {
   "<S type=verbatim>",    "<S type=verbatim>",
   "\002verbatim:",    "\002verbatim:",
   "\002",    "\002",
     "",
   ""    ""
 };  };
 char *Data_begin_l[] = {  char *Data_begin_l[] = {
   "<S type=latex>",    "<S type=latex>",
   "\002latex:",    "\002latex:",
   "\002latex:",    "\002latex:",
     "",
   ""    ""
 };  };
 char *Data_begin_p[] = {  char *Data_begin_p[] = {
   "<S type=prompt>",    "<S type=prompt>",
   "\002prompt:",    "\002prompt:",
   "\002prompt:",    "\002prompt:",
     "",
   ""    ""
 };  };
 char *Data_begin_ps[] = {  char *Data_begin_ps[] = {
   "<S type=postscript>",    "<S type=postscript>",
   "\002ps:",    "\002ps:",
   "\002ps:",    "\002ps:",
     "",
   ""    ""
 };  };
 char *Data_end[] = {  char *Data_end[] = {
   "</S>",    "</S>",
   "\005",    "\005",
   "\n\005",    /* \n is not a part of the protocol. */    "\n\005",    /* \n is not a part of the protocol. */
   ""    "",
     ""           /* SAGE */
 };  };
   
 /* todo:  start_of_input */  /* todo:  start_of_input */
Line 68  char End_of_input[] = {
Line 74  char End_of_input[] = {
   0x5,              /* Use ^E and Return to end the input. */    0x5,              /* Use ^E and Return to end the input. */
   '\n',  /* TEXMACS_END_OF_INPUT. 0xd should be used for multiple lines. */    '\n',  /* TEXMACS_END_OF_INPUT. 0xd should be used for multiple lines. */
   0x5,    /* CFEP_END_OF_INPUT    */    0x5,    /* CFEP_END_OF_INPUT    */
   0x5    0x5,
     '\n'   /* SAGE cf. __init__ */
 };  };
   
   char *Prompt[]={
     "generic>", /* generic */
     "", /* texmacs */
     "",    /* cfep */
     "",   /* qfep */
     "\nasir>"    /* SAGE */
   };
   
   
 /* Table for the engine type. */  /* Table for the engine type. */
 #define ASIR          1  #define ASIR          1
 #define SM1           2  #define SM1           2
Line 98  int EngineLogToStdout = 0;   /* Do not run the ox engi
Line 114  int EngineLogToStdout = 0;   /* Do not run the ox engi
 char *AsirInitFile = NULL;  char *AsirInitFile = NULL;
   
 char *LanguageResource = NULL;  char *LanguageResource = NULL;
   int TM_quiet = 0;
   
 void ctrlC();  void ctrlC();
 struct object KpoString(char *s);  struct object KpoString(char *s);
Line 113  static int startEngine(int type,char *msg);
Line 130  static int startEngine(int type,char *msg);
 static int isPS(char *s);  static int isPS(char *s);
 static int end_of_input(int c);  static int end_of_input(int c);
 static void setDefaultParameterForCfep();  static void setDefaultParameterForCfep();
   static void setDefaultParameterForSage();
   
 static void myEncoder(int c);  static void myEncoder(int c);
 static void myEncoderS(unsigned char *s);  static void myEncoderS(unsigned char *s);
Line 149  main(int argc,char *argv[]) {
Line 167  main(int argc,char *argv[]) {
 #ifdef DEBUG2  #ifdef DEBUG2
   Dfp = fopen("/tmp/debug-texmacs.txt","w");    Dfp = fopen("/tmp/debug-texmacs.txt","w");
 #endif  #endif
   
   /* Initialize kanlib (gc is also initialized) */  
   KSstart();  
   
     TM_quiet=0;
     for (i=1; i<argc; i++) {
       if (strcmp(argv[i],"--quiet")==0) {
         TM_quiet=1;
       }
     }
     /* Initialize kanlib (gc is also initialized) */
     if (TM_quiet) {
       KSstart_quiet();
     }else{
       KSstart();
     }
   /* Set consts */    /* Set consts */
   Quiet = 1;    Quiet = 1;
   for (i=1; i<argc; i++) {    for (i=1; i<argc; i++) {
Line 164  main(int argc,char *argv[]) {
Line 191  main(int argc,char *argv[]) {
         View = V_CFEP; setDefaultParameterForCfep();          View = V_CFEP; setDefaultParameterForCfep();
       }else if (strcmp(argv[i],"qfep")==0) {        }else if (strcmp(argv[i],"qfep")==0) {
         View = V_QFEP; setDefaultParameterForCfep();          View = V_QFEP; setDefaultParameterForCfep();
         }else if (strcmp(argv[i],"sage")==0) {
           View = V_SAGE; setDefaultParameterForSage();
       }else{        }else{
         View = GENERIC;          View = GENERIC;
         /* printv("Unknown view type.\n"); */          /* printv("Unknown view type.\n"); */
Line 194  main(int argc,char *argv[]) {
Line 223  main(int argc,char *argv[]) {
       i++;        i++;
       AsirInitFile = (char *)sGC_malloc(strlen(argv[i])+80);        AsirInitFile = (char *)sGC_malloc(strlen(argv[i])+80);
       sprintf(AsirInitFile,"%s",argv[i]);        sprintf(AsirInitFile,"%s",argv[i]);
       }else if (strcmp(argv[i],"--quiet") == 0) {
         /* it is already set. Ignore. */
     }else{      }else{
       /* printv("Unknown option\n"); */        /* printv("Unknown option\n"); */
     }      }
Line 246  main(int argc,char *argv[]) {
Line 277  main(int argc,char *argv[]) {
       continue;        continue;
     } else {  }      } else {  }
     if (!irt) {      if (!irt) {
       printf("%s",Data_end[View]); fflush(stdout);        if (View != V_SAGE) printf("%s",Data_end[View]); fflush(stdout);
     }      }
     irt = 0;      irt = 0;
   
     /* Reading the input. */      /* Reading the input. */
       printf("%s",Prompt[View]); fflush(stdout);
     if (TM_Engine == K0) {      if (TM_Engine == K0) {
       s=readString(stdin, " ", " "); /* see test data */        s=readString(stdin, " ", " "); /* see test data */
     }else if (TM_Engine == SM1) {      }else if (TM_Engine == SM1) {
Line 523  static int end_of_input(int c) {
Line 555  static int end_of_input(int c) {
 static void setDefaultParameterForCfep() {  static void setDefaultParameterForCfep() {
   Format = 0;    Format = 0;
 }  }
   static void setDefaultParameterForSage() {
     Format = 0;
   }
   
 static void printv(char *s) {  static void printv(char *s) {
   int i;    int i;
Line 561  static void printp(char *s) {
Line 596  static void printp(char *s) {
   fflush(NULL);    fflush(NULL);
 }  }
 static void printCopyright(char *s) {  static void printCopyright(char *s) {
   printf("%s",Data_begin_v[View]);  
   if (! NoCopyright) {    if (! NoCopyright) {
       printf("%s",Data_begin_v[View]);
     printf("OpenXM engine (ox engine) interface with TeXmacs protocol.\n2004 (C) openxm.org");      printf("OpenXM engine (ox engine) interface with TeXmacs protocol.\n2004 (C) openxm.org");
     printf(" under the BSD license.  !asir; !sm1; !k0; !verbatim; !quit;\n");      printf(" under the BSD license.  !asir; !sm1; !k0; !verbatim; !quit;\n");
     printf("Type in      !reset;     when the engine gets confused. ");      printf("Type in      !reset;     when the engine gets confused. ");
     printf("%s",s);      printf("%s",s);
       printf("%s",Data_end[View]);
   }    }
   printf("%s",Data_end[View]);  
   fflush(NULL);    fflush(NULL);
 }  }
   
Line 577  static void flushSm1() {
Line 612  static void flushSm1() {
 }  }
 static int startEngine(int type,char *msg) {  static int startEngine(int type,char *msg) {
   struct object ob = OINIT;    struct object ob = OINIT;
   printf("%s",Data_begin_v[View]);    if (!TM_quiet) printf("%s",Data_begin_v[View]);
   if (type == SM1) {    if (type == SM1) {
     if (!TM_sm1Started) KSexecuteString(" sm1connectr ");      if (!TM_sm1Started) KSexecuteString(" sm1connectr ");
     KSexecuteString(" /ox.engine oxsm1.ccc def ");      KSexecuteString(" /ox.engine oxsm1.ccc def ");
Line 633  static int startEngine(int type,char *msg) {
Line 668  static int startEngine(int type,char *msg) {
        not work. */         not work. */
     KSexecuteString(" oxasir.ccc (print(\"----------- Messages from asir ------------------------------\")$ ) oxsubmit oxasir.ccc oxpopcmo ");      KSexecuteString(" oxasir.ccc (print(\"----------- Messages from asir ------------------------------\")$ ) oxsubmit oxasir.ccc oxpopcmo ");
   }    }
   printf("%s",Data_end[View]);    if (!TM_quiet) printf("%s",Data_end[View]);
   fflush(NULL);    fflush(NULL);
 }  }
   

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.42

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