[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.28 and 1.32

version 1.28, 2006/02/02 07:07:22 version 1.32, 2006/03/03 10:55:33
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.27 2006/02/01 04:16:54 takayama Exp $ */  /* $OpenXM: OpenXM/src/kxx/ox_texmacs.c,v 1.31 2006/03/03 02:47:28 takayama Exp $ */
   
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
Line 87  int NoCopyright = 0;
Line 87  int NoCopyright = 0;
 int Cpp = 0;                 /* Use cpp before sending to the engine. */  int Cpp = 0;                 /* Use cpp before sending to the engine. */
 int EngineLogToStdout = 0;   /* Do not run the ox engine inside xterm. */  int EngineLogToStdout = 0;   /* Do not run the ox engine inside xterm. */
   
   unsigned char *AsirInitFile = NULL;
   
   char *LanguageResource = NULL;
   
 void ctrlC();  void ctrlC();
 struct object KpoString(char *s);  struct object KpoString(char *s);
 char *KSpopString(void);  char *KSpopString(void);
Line 108  static void myEncoderSn(unsigned char *s,int n);
Line 112  static void myEncoderSn(unsigned char *s,int n);
 static void outputStringToTunnel0(int channel, unsigned char *s, int size, int view);  static void outputStringToTunnel0(int channel, unsigned char *s, int size, int view);
 static void outputStringToTunnel(int channel, unsigned char *s,  int view);  static void outputStringToTunnel(int channel, unsigned char *s,  int view);
   
   static void flushSm1();
   
 /* tail -f /tmp/debug-texmacs.txt  /* tail -f /tmp/debug-texmacs.txt
    Debug output to understand the timing problem of pipe interface.     Debug output to understand the timing problem of pipe interface.
 */  */
Line 160  main(int argc,char *argv[]) {
Line 166  main(int argc,char *argv[]) {
       Cpp = 1;        Cpp = 1;
     }else if (strcmp(argv[i],"--engineLogToStdout") == 0) {      }else if (strcmp(argv[i],"--engineLogToStdout") == 0) {
       EngineLogToStdout = 1;        EngineLogToStdout = 1;
       }else if (strcmp(argv[i],"--languageResource") == 0) {
         i++;
         LanguageResource = (char *)sGC_malloc(strlen(argv[i])+80);
         sprintf(LanguageResource,
                             " /localizedString.file (%s) def localizedString.load ",argv[i]);
       }else if (strcmp(argv[i],"--asirInitFile") == 0) {
         i++;
         AsirInitFile = (unsigned char *)sGC_malloc(strlen(argv[i])+80);
         sprintf(AsirInitFile,"%s",argv[i]);
     }else{      }else{
       /* printv("Unknown option\n"); */        /* printv("Unknown option\n"); */
     }      }
Line 190  main(int argc,char *argv[]) {
Line 205  main(int argc,char *argv[]) {
   KSexecuteString(" [(parse) (ox.sm1) pushfile] extension ");    KSexecuteString(" [(parse) (ox.sm1) pushfile] extension ");
   if (Xm_noX) KSexecuteString(" /Xm_noX 1 def ");    if (Xm_noX) KSexecuteString(" /Xm_noX 1 def ");
   if (EngineLogToStdout) KSexecuteString(" /Xm_engineLogToStdout 1 def ");    if (EngineLogToStdout) KSexecuteString(" /Xm_engineLogToStdout 1 def ");
     if (LanguageResource != NULL) KSexecuteString(LanguageResource);
   startEngine(TM_Engine," ");    startEngine(TM_Engine," ");
   
   if (signal(SIGINT,SIG_IGN) != SIG_IGN) {    if (signal(SIGINT,SIG_IGN) != SIG_IGN) {
Line 234  main(int argc,char *argv[]) {
Line 250  main(int argc,char *argv[]) {
     ob = KpoString(s);      ob = KpoString(s);
     KSpush(ob);      KSpush(ob);
     KSexecuteString(" oxsubmit ");      KSexecuteString(" oxsubmit ");
   
           if (TM_Engine == SM1) flushSm1();
   
     /* Get the result in string for cfep. */      /* Get the result in string for cfep. */
     if (View != V_TEXMACS) {      if (View != V_TEXMACS) {
Line 408  static char *readString(FILE *fp, char *prolog, char *
Line 426  static char *readString(FILE *fp, char *prolog, char *
     return NULL;      return NULL;
   }    }
   
     /* remove end$ or end; */
     if (TM_Engine == ASIR) {
       for (i=n-1; i>=4; i--) {
             if ((s[i-4]=='\n') && (s[i-3]=='e') && (s[i-2]=='n') && (s[i-1]=='d') && (s[i]=='$')) {
           s[i-3] = s[i-2] = s[i-1] = s[i] = ' '; break;
         }
             if ((s[i-4]=='\n') && (s[i-3]=='e') && (s[i-2]=='n') && (s[i-1]=='d') && (s[i]==';')) {
           s[i-3] = s[i-2] = s[i-1] = s[i] = ' '; break;
         }
       }
     }
   
   /* Set TM_do_no_print */    /* Set TM_do_no_print */
   if (s[n-1] == '$' && TM_Engine == ASIR) {    if (s[n-1] == '$' && TM_Engine == ASIR) {
         TM_do_not_print = 1; s[n-1] = ' ';          TM_do_not_print = 1; s[n-1] = ' ';
Line 479  static void printCopyright(char *s) {
Line 509  static void printCopyright(char *s) {
   fflush(NULL);    fflush(NULL);
 }  }
   
   static void flushSm1() {
     KSexecuteString(" oxsm1.ccc ( [(flush)] extension pop ) oxsubmit ");
   }
 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]);    printf("%s",Data_begin_v[View]);
Line 489  static int startEngine(int type,char *msg) {
Line 522  static int startEngine(int type,char *msg) {
     KSexecuteString("  oxsm1.ccc ( [(cmoLispLike) 0] extension ) oxsubmit ");      KSexecuteString("  oxsm1.ccc ( [(cmoLispLike) 0] extension ) oxsubmit ");
     KSexecuteString("  oxsm1.ccc ( ox_server_mode ) oxsubmit ");      KSexecuteString("  oxsm1.ccc ( ox_server_mode ) oxsubmit ");
     KSexecuteString("  oxsm1.ccc ( ( ) message (------------- Message from sm1 ----------------)message ) oxsubmit ");      KSexecuteString("  oxsm1.ccc ( ( ) message (------------- Message from sm1 ----------------)message ) oxsubmit ");
           flushSm1();
     TM_sm1Started = 1;      TM_sm1Started = 1;
         /* Welcome message.  BUG. Copyright should be returned by a function. */          /* Welcome message.  BUG. Copyright should be returned by a function. */
     if (! NoCopyright) {      if (! NoCopyright) {
Line 498  static int startEngine(int type,char *msg) {
Line 532  static int startEngine(int type,char *msg) {
       printf("Info: http://www.math.kobe-u.ac.jp/KAN, kan@math.kobe-u.ac.jp.\n");        printf("Info: http://www.math.kobe-u.ac.jp/KAN, kan@math.kobe-u.ac.jp.\n");
       printf("0 usages to show a list of functions. \n(keyword) usages to see a short description\n");        printf("0 usages to show a list of functions. \n(keyword) usages to see a short description\n");
     }      }
     printf("%s\n",msg);      printf("%s\n",msg); fflush(NULL);
   }else if (type == K0) {    }else if (type == K0) {
     if (!TM_k0Started) KSexecuteString(" k0connectr ");      if (!TM_k0Started) KSexecuteString(" k0connectr ");
     KSexecuteString(" /ox.engine oxk0.ccc def ");      KSexecuteString(" /ox.engine oxk0.ccc def ");
Line 523  static int startEngine(int type,char *msg) {
Line 557  static int startEngine(int type,char *msg) {
       }        }
     }      }
     /* Initialize the setting of asir. */      /* Initialize the setting of asir. */
       if (AsirInitFile) {  /* cf. asir-contrib/packages/src/cfep-init.rr */
             unsigned char *ss;
             ss = (unsigned char *)GC_malloc(strlen(AsirInitFile)+256);
             sprintf(ss," oxasir.ccc (load(\"%s\");) oxsubmit oxasir.ccc oxgeterrors length 0 gt { (Error in loading asirInitFile) message} { } ifelse ",AsirInitFile);
             /* printf("Loading --asirInitFile %s\n",AsirInitFile); */
             KSexecuteString(ss);
       }
     KSexecuteString(" oxasir.ccc (if(1) {  Xm_server_mode = 1; Xm_helpdir = \"help-eg\";  } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo ");      KSexecuteString(" oxasir.ccc (if(1) {  Xm_server_mode = 1; Xm_helpdir = \"help-eg\";  } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo ");
     KSexecuteString(" oxasir.ccc (if(1) {  ctrl(\"message\",0);  } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo ");      KSexecuteString(" oxasir.ccc (if(1) {  ctrl(\"message\",0);  } else { ; } ;) oxsubmit oxasir.ccc oxpopcmo ");
     /* bug; if ctrl is written with Xm_helpdir = ... without oxpopcmo, then it does      /* bug; if ctrl is written with Xm_helpdir = ... without oxpopcmo, then it does

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.32

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