[BACK]Return to ox_asir.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / io

Diff for /OpenXM_contrib2/asir2000/io/ox_asir.c between version 1.35 and 1.42

version 1.35, 2001/12/25 02:39:05 version 1.42, 2003/03/07 03:12:28
Line 44 
Line 44 
  * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY   * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  * $OpenXM: OpenXM_contrib2/asir2000/io/ox_asir.c,v 1.34 2001/12/21 08:23:14 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/ox_asir.c,v 1.41 2003/02/14 22:29:15 ohara Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
 #include "signal.h"  #include "signal.h"
 #include "ox.h"  #include "ox.h"
 #include "version.h"  #include "version.h"
 #if PARI  #if defined(PARI)
 #include "genpari.h"  #include "genpari.h"
 #endif  #endif
   
 void ox_usr1_handler();  void ox_usr1_handler();
 int asir_ox_init();  int asir_ox_init();
   
 extern JMP_BUF environnement;  /* environement is defined in libpari.a */
   extern jmp_buf environnement;
   
 extern int do_message;  extern int do_message;
 extern int ox_flushing;  extern int ox_flushing;
Line 77  Obj *asir_OperandStack;
Line 78  Obj *asir_OperandStack;
 int asir_OperandStackPtr = -1;  int asir_OperandStackPtr = -1;
   
 void ox_io_init();  void ox_io_init();
 void ox_asir_init(int,char **);  void ox_asir_init(int,char **,char *);
 Obj asir_pop_one();  Obj asir_pop_one();
 Obj asir_peek_one();  Obj asir_peek_one();
 void asir_push_one(Obj);  void asir_push_one(Obj);
Line 139  void ox_main(int argc,char **argv) {
Line 140  void ox_main(int argc,char **argv) {
         int ret;          int ret;
         extern char LastError[];          extern char LastError[];
   
         ox_asir_init(argc,argv);          ox_asir_init(argc,argv,"ox_asir");
         if ( do_message )          if ( do_message )
                 fprintf(stderr,"I'm an ox_asir, Version %d.\n",ASIR_VERSION);                  fprintf(stderr,"I'm an ox_asir, Version %d.\n",ASIR_VERSION);
         if ( SETJMP(ox_env) ) {          if ( SETJMP(ox_env) ) {
Line 486  int asir_executeString()
Line 487  int asir_executeString()
         SNODE snode;          SNODE snode;
         pointer val;          pointer val;
         char *cmd;          char *cmd;
 #if PARI  #if defined(PARI)
         recover(0);          recover(0);
         if ( SETJMP(environnement) ) {          /* environement is defined in libpari.a */
           if ( setjmp(environnement) ) {
                 avma = top; recover(1);                  avma = top; recover(1);
                 resetenv("");                  resetenv("");
         }          }
Line 634  Obj asir_peek_one() {
Line 636  Obj asir_peek_one() {
         }          }
 }  }
   
 void ox_asir_init(int argc,char **argv)  void ox_asir_init(int argc,char **argv,char *servername)
 {  {
         char ifname[BUFSIZ];          char ifname[BUFSIZ];
         extern int GC_dont_gc;          extern int GC_dont_gc;
         extern int read_exec_file;          extern int read_exec_file;
         extern int do_asirrc;          extern int do_asirrc;
         extern int do_server_in_X11;          extern int do_server_in_X11;
           extern char displayname[];
         char *getenv();          char *getenv();
         static ox_asir_initialized = 0;          static ox_asir_initialized = 0;
         FILE *ifp;          FILE *ifp;
Line 654  void ox_asir_init(int argc,char **argv)
Line 657  void ox_asir_init(int argc,char **argv)
         do_server_in_X11 = 1; /* XXX */          do_server_in_X11 = 1; /* XXX */
 #endif  #endif
         asir_save_handler();          asir_save_handler();
 #if PARI  #if defined(PARI)
         risa_pari_init();          risa_pari_init();
 #endif  #endif
         srandom((int)get_current_time());          srandom((int)get_current_time());
Line 664  void ox_asir_init(int argc,char **argv)
Line 667  void ox_asir_init(int argc,char **argv)
         endian_init();          endian_init();
         GC_init();          GC_init();
         process_args(--argc,++argv);          process_args(--argc,++argv);
   #if defined(__CYGWIN__)
           if ( !displayname[0] )
                   do_server_in_X11 = 0; /* XXX */
   #endif
         output_init();          output_init();
         arf_init();          arf_init();
         nglob_init();          nglob_init();
Line 705  void ox_asir_init(int argc,char **argv)
Line 712  void ox_asir_init(int argc,char **argv)
         input_init(0,"string");          input_init(0,"string");
 /* XXX Windows compatibility */  /* XXX Windows compatibility */
         ox_io_init();          ox_io_init();
         create_my_mathcap("ox_asir");          create_my_mathcap(servername);
 }  }
   
 void ox_io_init() {  void ox_io_init() {
Line 893  int asir_ox_peek_cmo_size()
Line 900  int asir_ox_peek_cmo_size()
         Obj obj;          Obj obj;
         int len;          int len;
   
         obj = asir_pop_one();          obj = asir_peek_one();
         asir_push_one(obj);  
         if ( !valid_as_cmo(obj) ) {          if ( !valid_as_cmo(obj) ) {
                 fprintf(stderr,"The object at the stack top is invalid as a CMO.\n");                  fprintf(stderr,"The object at the stack top is invalid as a CMO.\n");
                 return 0;                  return 0;
Line 903  int asir_ox_peek_cmo_size()
Line 909  int asir_ox_peek_cmo_size()
         return len;          return len;
 }  }
   
   int asir_ox_peek_cmo_string_length()
   {
           Obj obj;
           int len;
   
           obj = asir_peek_one();
           if ( !valid_as_cmo(obj) ) {
                   fprintf(stderr,"The object at the stack top is invalid as a CMO.\n");
                   return 0;
           }
           len = estimate_length(CO,obj);
           return len+1;
   }
   
 /*  /*
  * Initialization.   * Initialization.
  * byteorder=0 => native   * byteorder=0 => native
Line 925  int asir_ox_init(int byteorder)
Line 945  int asir_ox_init(int byteorder)
         do_server_in_X11 = 0; /* XXX */          do_server_in_X11 = 0; /* XXX */
 #endif  #endif
         asir_save_handler();          asir_save_handler();
 #if PARI  #if defined(PARI)
         risa_pari_init();          risa_pari_init();
 #endif  #endif
         srandom((int)get_current_time());          srandom((int)get_current_time());

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

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