[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.1 and 1.3

version 1.1, 1999/10/29 08:06:41 version 1.3, 1999/11/03 10:56:40
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM$ */  /* $OpenXM: OpenXM/src/ox_math/serv2.c,v 1.2 1999/11/02 06:11:58 ohara Exp $ */
 /* $Id$ */  
   
 /* Open Mathematica サーバ */  /* Open Mathematica サーバ */
 /* ファイルディスクリプタ 3, 4 は open されていると仮定して動作する. */  /* ファイルディスクリプタ 3, 4 は open されていると仮定して動作する. */
Line 95  cmo *MATH_getObject2()
Line 94  cmo *MATH_getObject2()
         break;          break;
     case MLTKERR:      case MLTKERR:
         fprintf(stderr, "type is ERROR.\n");          fprintf(stderr, "type is ERROR.\n");
         m = gen_error_object(MATH_ERROR);          m = (cmo *)gen_error_object(MATH_ERROR);
         break;          break;
     case MLTKSYM:      case MLTKSYM:
         fprintf(stderr, "MLTKSYM.\n");          fprintf(stderr, "MLTKSYM.\n");
Line 115  cmo *MATH_getObject2()
Line 114  cmo *MATH_getObject2()
             fprintf(stderr, "%s ");              fprintf(stderr, "%s ");
         }          }
         fprintf(stderr, "\n");          fprintf(stderr, "\n");
         m = (cmo *)new_cmo_string(s[0]);          m = (cmo *)new_cmo_string(s);
         break;          break;
     case MLTKREAL:      case MLTKREAL:
         fprintf(stderr, "MLTKREAL is not supported: we use MLTKSTR.\n");          fprintf(stderr, "MLTKREAL is not supported: we use MLTKSTR.\n");
Line 144  int MATH_sendObject(cmo *m)
Line 143  int MATH_sendObject(cmo *m)
         break;          break;
     default:      default:
         MLPutFunction(lp, "ToExpression", 1);          MLPutFunction(lp, "ToExpression", 1);
         s = CONVERT_CMO_TO_CSTRING(m);          s = convert_cmo_to_string(m);
         MLPutString(lp, s);          MLPutString(lp, s);
         fprintf(stderr, "put %s.", s);          fprintf(stderr, "put %s.", s);
         break;          break;
Line 196  int push(cmo* m)
Line 195  int push(cmo* m)
     }      }
 }  }
   
 /* エラーのときは NULL を返す */  /* スタックが空のときは, (CMO_NULL) をかえす. */
 /* gen_error_object(SM_popCMO); */  
 /* CMO_ERROR2 */  
   
 cmo* pop()  cmo* pop()
 {  {
     if (Stack_Pointer > 0) {      if (Stack_Pointer > 0) {
         Stack_Pointer--;          Stack_Pointer--;
         return Operand_Stack[Stack_Pointer];          return Operand_Stack[Stack_Pointer];
     }      }
     return NULL;      return new_cmo_null();
 }  }
   
 void pops(int n)  void pops(int n)
Line 217  void pops(int n)
Line 213  void pops(int n)
     }      }
 }  }
   
   
 /* sm_XXX 関数群は、エラーのときは 0 以外の値を返し、呼び出し元で  /* sm_XXX 関数群は、エラーのときは 0 以外の値を返し、呼び出し元で
    エラーオブジェクトをセットする */     エラーオブジェクトをセットする */
 int sm_popCMO(int fd_write)  int sm_popCMO(int fd_write)
Line 252  int sm_popString(int fd_write)
Line 247  int sm_popString(int fd_write)
     fprintf(stderr, "code: SM_popString.\n");      fprintf(stderr, "code: SM_popString.\n");
 #endif  #endif
   
     if ((m = pop()) != NULL && (s = CONVERT_CMO_TO_CSTRING(m)) != NULL) {      if ((m = pop()) != NULL && (s = convert_cmo_to_string(m)) != NULL) {
         send_ox_cmo(fd_write, new_cmo_string(s));          send_ox_cmo(fd_write, (cmo *)new_cmo_string(s));
         return 0;          return 0;
     }      }
     return SM_popString;      return SM_popString;
Line 343  int execute_sm_command(int fd_write, int code)
Line 338  int execute_sm_command(int fd_write, int code)
     case SM_executeFunction:      case SM_executeFunction:
         err = sm_executeFunction(fd_write);          err = sm_executeFunction(fd_write);
         break;          break;
     case SM_setMathcap:      case SM_setMathCap:
         pop();  /* 無視する */          pop();  /* 無視する */
         break;          break;
     default:      default:
Line 352  int execute_sm_command(int fd_write, int code)
Line 347  int execute_sm_command(int fd_write, int code)
     }      }
   
     if (err != 0) {      if (err != 0) {
         push(gen_error_object(err));          push((cmo *)gen_error_object(err));
     }      }
 }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

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