[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.15 and 1.17

version 1.15, 2000/03/10 12:45:48 version 1.17, 2000/11/28 20:16:03
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM: OpenXM/src/ox_math/serv2.c,v 1.14 2000/03/10 12:38:47 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_math/serv2.c,v 1.16 2000/10/10 19:58:30 ohara Exp $ */
   
 /*  /*
    Copyright (C) Katsuyoshi OHARA, 2000.     Copyright (C) Katsuyoshi OHARA, 2000.
Line 91  void pops(int n)
Line 91  void pops(int n)
    if error occurs, then a sm_*() function returns non-zero and     if error occurs, then a sm_*() function returns non-zero and
    an error obect is set by a function which calls sm_*().     an error obect is set by a function which calls sm_*().
 */  */
 int sm_popCMO(int fd_write)  int sm_popCMO(OXFILE* oxfp)
 {  {
     cmo* m = pop();      cmo* m = pop();
 #ifdef DEBUG  #ifdef DEBUG
Line 100  int sm_popCMO(int fd_write)
Line 100  int sm_popCMO(int fd_write)
 #endif  #endif
   
     if (m != NULL) {      if (m != NULL) {
         send_ox_cmo(fd_write, m);          send_ox_cmo(oxfp, m);
         return 0;          return 0;
     }      }
     return SM_popCMO;      return SM_popCMO;
 }  }
   
 int sm_pops(int fd_write)  int sm_pops(OXFILE* oxfp)
 {  {
     cmo* m = pop();      cmo* m = pop();
     if (m != NULL && m->tag == CMO_INT32) {      if (m != NULL && m->tag == CMO_INT32) {
Line 117  int sm_pops(int fd_write)
Line 117  int sm_pops(int fd_write)
 }  }
   
 /* MathLink dependent */  /* MathLink dependent */
 int sm_popString(int fd_write)  int sm_popString(OXFILE* oxfp)
 {  {
     char *s;      char *s;
     cmo *err;      cmo *err;
Line 129  int sm_popString(int fd_write)
Line 129  int sm_popString(int fd_write)
   
     m = pop();      m = pop();
     if (m->tag == CMO_STRING) {      if (m->tag == CMO_STRING) {
         send_ox_cmo(fd_write, m);          send_ox_cmo(oxfp, m);
     }else if ((s = new_string_set_cmo(m)) != NULL) {      }else if ((s = new_string_set_cmo(m)) != NULL) {
         send_ox_cmo(fd_write, (cmo *)new_cmo_string(s));          send_ox_cmo(oxfp, (cmo *)new_cmo_string(s));
     }else {      }else {
         err = make_error_object(SM_popString, m);          err = make_error_object(SM_popString, m);
         send_ox_cmo(fd_write, err);          send_ox_cmo(oxfp, err);
     }      }
     return 0;      return 0;
 }  }
Line 156  int local_execute(char *s)
Line 156  int local_execute(char *s)
 }  }
   
 /* The following function is depend on an implementation of a server. */  /* The following function is depend on an implementation of a server. */
 int sm_executeStringByLocalParser(int fd_write)  int sm_executeStringByLocalParser(OXFILE* oxfp)
 {  {
     symbol_t symp;      symbol_t symp;
     cmo* m = pop();      cmo* m = pop();
Line 185  int sm_executeStringByLocalParser(int fd_write)
Line 185  int sm_executeStringByLocalParser(int fd_write)
     return SM_executeStringByLocalParser;      return SM_executeStringByLocalParser;
 }  }
   
 int sm_executeFunction(int fd_write)  int sm_executeFunction(OXFILE* oxfp)
 {  {
     int i, argc;      int i, argc;
     cmo **argv;      cmo **argv;
Line 212  int sm_executeFunction(int fd_write)
Line 212  int sm_executeFunction(int fd_write)
     return 0;      return 0;
 }  }
   
 #define VERSION 0x11121400  int sm_mathcap(OXFILE* oxfp)
 #define ID_STRING  "ox_math server 1999/12/14 15:25:00"  
   
 int sm_mathcap(int fd_write)  
 {  {
     push(make_mathcap_object(VERSION, ID_STRING));      push((cmo *)oxf_cmo_mathcap(oxfp));
     return 0;      return 0;
 }  }
   
 int receive_sm_command(int fd_read)  void sm_set_mathcap(OXFILE *oxfp)
 {  {
     return receive_int32(fd_read);      cmo_mathcap *m = (cmo_mathcap *)pop();
       if (m->tag == CMO_MATHCAP) {
           oxf_mathcap_update(oxfp, m);
       }else {
           push_error(-1, m);
           /* an error object must be pushed */
       }
 }  }
   
 int execute_sm_command(int fd_write, int code)  int receive_sm_command(OXFILE* oxfp)
 {  {
       return receive_int32(oxfp);
   }
   
   int execute_sm_command(OXFILE* oxfp, int code)
   {
     int err = 0;      int err = 0;
 #ifdef DEBUG  #ifdef DEBUG
     symbol_t sp = lookup_by_tag(code);      symbol_t sp = lookup_by_tag(code);
Line 236  int execute_sm_command(int fd_write, int code)
Line 244  int execute_sm_command(int fd_write, int code)
   
     switch(code) {      switch(code) {
     case SM_popCMO:      case SM_popCMO:
         err = sm_popCMO(fd_write);          err = sm_popCMO(oxfp);
         break;          break;
     case SM_popString:      case SM_popString:
         err = sm_popString(fd_write);          err = sm_popString(oxfp);
         break;          break;
     case SM_mathcap:      case SM_mathcap:
         err = sm_mathcap(fd_write);          err = sm_mathcap(oxfp);
         break;          break;
     case SM_pops:      case SM_pops:
         err = sm_pops(fd_write);          err = sm_pops(oxfp);
         break;          break;
     case SM_executeStringByLocalParser:      case SM_executeStringByLocalParser:
     case SM_executeStringByLocalParserInBatchMode:      case SM_executeStringByLocalParserInBatchMode:
         err = sm_executeStringByLocalParser(fd_write);          err = sm_executeStringByLocalParser(oxfp);
         break;          break;
     case SM_executeFunction:      case SM_executeFunction:
         err = sm_executeFunction(fd_write);          err = sm_executeFunction(oxfp);
         break;          break;
     case SM_shutdown:      case SM_shutdown:
         shutdown();          shutdown();

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.17

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