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

Diff for /OpenXM/src/ox_math/Attic/serv2.c between version 1.12 and 1.13

version 1.12, 2000/01/05 06:09:11 version 1.13, 2000/01/22 06:29:18
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM: OpenXM/src/ox_math/serv2.c,v 1.11 1999/12/14 09:31:56 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_math/serv2.c,v 1.12 2000/01/05 06:09:11 ohara Exp $ */
   
 /* Open Mathematica サーバ */  /*
 /* ファイルディスクリプタ 3, 4 は open されていると仮定して動作する. */     Copyright (C) Katsuyoshi OHARA, 2000.
      Portions copyright 1999 Wolfram Research, Inc.
   
      You must see OpenXM/Copyright/Copyright.generic.
      The MathLink Library is licensed from Wolfram Research Inc..
      See OpenXM/Copyright/Copyright.mathlink for detail.
   */
   
   /*
      Remarks:
      file descripter 3 and 4 are already opened by the parent process.
   */
   
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <unistd.h>  #include <unistd.h>
Line 15 
Line 26 
   
 extern int flag_mlo_symbol;  extern int flag_mlo_symbol;
   
 /* MathLink 非依存部分 */  /* MathLink independent */
 #define INIT_S_SIZE 2048  #define INIT_S_SIZE 2048
 #define EXT_S_SIZE  2048  #define EXT_S_SIZE  2048
   
Line 59  int push(cmo* m)
Line 70  int push(cmo* m)
     }      }
 }  }
   
 /* スタックが空のときは, (CMO_NULL) をかえす. */  /* if the stack is empty, then pop() returns (CMO_NULL). */
 cmo* pop()  cmo* pop()
 {  {
     if (stack_pointer > 0) {      if (stack_pointer > 0) {
Line 77  void pops(int n)
Line 88  void pops(int n)
     }      }
 }  }
   
 /* sm_XXX 関数群は、エラーのときは 0 以外の値を返し、呼び出し元で  /*
    エラーオブジェクトをセットする */     if error occurs, then a sm_*() function returns non-zero and
      an error obect is set by a function which calls sm_*().
   */
 int sm_popCMO(int fd_write)  int sm_popCMO(int fd_write)
 {  {
     cmo* m = pop();      cmo* m = pop();
Line 104  int sm_pops(int fd_write)
Line 117  int sm_pops(int fd_write)
     return ERROR_ID_UNKNOWN_SM;      return ERROR_ID_UNKNOWN_SM;
 }  }
   
 /* MathLink 依存部分 */  /* MathLink dependent */
 int sm_popString(int fd_write)  int sm_popString(int fd_write)
 {  {
     char *s;      char *s;
Line 143  int local_execute(char *s)
Line 156  int local_execute(char *s)
     return 0;      return 0;
 }  }
   
 /* この関数はサーバに依存する. */  /* The following function is depend on an implementation of a server. */
 int sm_executeStringByLocalParser(int fd_write)  int sm_executeStringByLocalParser(int fd_write)
 {  {
     symbol *symp;      symbol *symp;
Line 159  int sm_executeStringByLocalParser(int fd_write)
Line 172  int sm_executeStringByLocalParser(int fd_write)
             local_execute(++s);              local_execute(++s);
         }else {          }else {
             /* for mathematica */              /* for mathematica */
             /* mathematica に文字列を送って評価させる */              /* Sending the string `s' to mathematica for its evaluation. */
             ml_evaluateStringByLocalParser(s);              ml_evaluateStringByLocalParser(s);
                         ml_select();                          ml_select();
             push(receive_mlo());              push(receive_mlo());
Line 246  int execute_sm_command(int fd_write, int code)
Line 259  int execute_sm_command(int fd_write, int code)
         shutdown();          shutdown();
         break;          break;
     case SM_setMathCap:      case SM_setMathCap:
         pop();  /* 無視する */          pop();  /* ignore */
         break;          break;
     default:      default:
         fprintf(stderr, "unknown command: %d.\n", code);          fprintf(stderr, "unknown command: %d.\n", code);

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

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