[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.50 and 1.58

version 1.50, 2003/12/13 08:03:56 version 1.58, 2005/07/26 00:58:50
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.49 2003/12/12 09:01:11 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/ox_asir.c,v 1.57 2004/06/15 00:56:52 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 59  void ox_usr1_handler();
Line 59  void ox_usr1_handler();
 int asir_ox_init();  int asir_ox_init();
   
 /* environement is defined in libpari.a */  /* environement is defined in libpari.a */
   # if !( PARI_VERSION_CODE > 131588)
 extern jmp_buf environnement;  extern jmp_buf environnement;
   # endif
 extern int myrank_102,nserver_102;  extern int myrank_102,nserver_102;
   
 extern int do_message;  extern int do_message;
Line 153  void ox_main(int argc,char **argv) {
Line 155  void ox_main(int argc,char **argv) {
         if ( SETJMP(ox_env) ) {          if ( SETJMP(ox_env) ) {
                 while ( NEXT(asir_infile) )                  while ( NEXT(asir_infile) )
                         closecurrentinput();                          closecurrentinput();
                   resetpvs();
                   reset_engine();
                   reset_io();
                 ox_send_sync(0);                  ox_send_sync(0);
         }          }
         while ( 1 ) {          while ( 1 ) {
Line 183  void ox_main(int argc,char **argv) {
Line 188  void ox_main(int argc,char **argv) {
                                         if ( ret == 1 ) {                                          if ( ret == 1 ) {
                                                 create_error(&err,serial,LastError);                                                  create_error(&err,serial,LastError);
                                                 asir_push_one((Obj)err);                                                  asir_push_one((Obj)err);
                                                   while ( NEXT(asir_infile) )
                                                           closecurrentinput();
                                         }                                          }
                                         break;                                          break;
                                 }                                  }
Line 591  void asir_pushCMOtag(unsigned int serial)
Line 598  void asir_pushCMOtag(unsigned int serial)
 void asir_popString()  void asir_popString()
 {  {
         Obj val;          Obj val;
         char *buf,*obuf;          char *buf;
         int l;          int l;
         STRING str;          STRING str;
   
         val = asir_pop_one();          val = asir_pop_one();
         if ( !val )          if ( !val )
                 obuf = "0";                  buf = "0";
         else {          else {
                 l = estimate_length(CO,val);                  l = estimate_length(CO,val);
                 buf = (char *)ALLOCA(l+1);                  buf = (char *)ALLOCA(l+1);
                 soutput_init(buf);                  soutput_init(buf);
                 sprintexpr(CO,val);                  sprintexpr(CO,val);
                 l = strlen(buf);  
                 obuf = (char *)MALLOC(l+1);  
                 strcpy(obuf,buf);  
         }          }
         MKSTR(str,obuf);          MKSTR(str,buf);
         ox_send_data(0,str);          ox_send_data(0,str);
 }  }
   
Line 662  void asir_evalName(unsigned int serial)
Line 666  void asir_evalName(unsigned int serial)
         asir_push_one(val);          asir_push_one(val);
 }  }
   
   char *augment_backslash(char *s)
   {
           char *p,*r;
           int i;
   
           for ( i = 0, p = s; *p; p++, i++ ) if ( *p == '\\' ) i++;
           r = (char *)MALLOC_ATOMIC((i+1)*sizeof(char));
           for ( i = 0, p = s; *p; p++, i++ ) {
                   if ( *p == '\\' ) r[i++] = '\\';
                   r[i] = *p;
           }
           return r;
   }
   
 int asir_executeString()  int asir_executeString()
 {  {
         SNODE snode;          SNODE snode;
Line 670  int asir_executeString()
Line 688  int asir_executeString()
 #if defined(PARI)  #if defined(PARI)
         recover(0);          recover(0);
         /* environement is defined in libpari.a */          /* environement is defined in libpari.a */
   # if !(PARI_VERSION_CODE > 131588 )
         if ( setjmp(environnement) ) {          if ( setjmp(environnement) ) {
                 avma = top; recover(1);                  avma = top; recover(1);
                 resetenv("");                  resetenv("");
         }          }
   # endif
 #endif  #endif
         cmd = ((STRING)asir_pop_one())->body;          cmd = ((STRING)asir_pop_one())->body;
   /* XXX : probably this is useless */
   #if 0
           parse_strp = augment_backslash(cmd);
   #else
         parse_strp = cmd;          parse_strp = cmd;
   #endif
         if ( mainparse(&snode) ) {          if ( mainparse(&snode) ) {
                 return -1;                  return -1;
         }          }
Line 833  void ox_asir_init(int argc,char **argv,char *servernam
Line 858  void ox_asir_init(int argc,char **argv,char *servernam
         int tmp;          int tmp;
 #endif  #endif
   
           GC_init();
 #if !defined(VISUAL) && !defined(MPI)  #if !defined(VISUAL) && !defined(MPI)
         do_server_in_X11 = 1; /* XXX */          do_server_in_X11 = 1; /* XXX */
 #endif  #endif
Line 845  void ox_asir_init(int argc,char **argv,char *servernam
Line 871  void ox_asir_init(int argc,char **argv,char *servernam
         rtime_init();          rtime_init();
         env_init();          env_init();
         endian_init();          endian_init();
         GC_init();  
         cppname_init();          cppname_init();
         process_args(--argc,++argv);          process_args(--argc,++argv);
 #if defined(__CYGWIN__)  #if defined(__CYGWIN__)
Line 1122  int asir_ox_init(int byteorder)
Line 1147  int asir_ox_init(int byteorder)
         static ox_asir_initialized = 0;          static ox_asir_initialized = 0;
         FILE *ifp;          FILE *ifp;
   
           GC_init();
 #if !defined(VISUAL) && !defined(MPI)  #if !defined(VISUAL) && !defined(MPI)
         do_server_in_X11 = 0; /* XXX */          do_server_in_X11 = 0; /* XXX */
 #endif  #endif
Line 1134  int asir_ox_init(int byteorder)
Line 1160  int asir_ox_init(int byteorder)
         rtime_init();          rtime_init();
         env_init();          env_init();
         endian_init();          endian_init();
         GC_init();  
 /*      process_args(argc,argv); */  /*      process_args(argc,argv); */
         output_init();          output_init();
         arf_init();          arf_init();

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.58

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