=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/ox_asir.c,v retrieving revision 1.48 retrieving revision 1.53 diff -u -p -r1.48 -r1.53 --- OpenXM_contrib2/asir2000/io/ox_asir.c 2003/12/12 04:59:59 1.48 +++ OpenXM_contrib2/asir2000/io/ox_asir.c 2004/03/01 02:03:27 1.53 @@ -44,7 +44,7 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/ox_asir.c,v 1.47 2003/12/11 05:48:04 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/ox_asir.c,v 1.52 2004/02/26 06:37:09 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -59,7 +59,9 @@ void ox_usr1_handler(); int asir_ox_init(); /* environement is defined in libpari.a */ +# if !( PARI_VERSION_CODE > 131588) extern jmp_buf environnement; +# endif extern int myrank_102,nserver_102; extern int do_message; @@ -479,7 +481,7 @@ void asir_reset_102(unsigned int serial) do { ox_recv_102(i,&id,&obj); } while ( id != OX_SYNC_BALL ); - for ( i = myrank_102; i < nserver_102; i++ ) + for ( i = myrank_102+1; i < nserver_102; i++ ) ox_send_sync_102(i); } @@ -556,11 +558,12 @@ void asir_tcp_connect_102(unsigned int serial) port = QTOS(p); sprintf(port_str,"%d",port); use_unix = 0; + host = BDY((STRING)h); } else { strcpy(port_str,BDY((STRING)p)); use_unix = 1; + host = 0; } - host = BDY((STRING)h); s = try_connect(use_unix,host,port_str); rank = QTOS((Q)r); if ( register_102(s,rank,1) < 0 ) { @@ -590,23 +593,20 @@ void asir_pushCMOtag(unsigned int serial) void asir_popString() { Obj val; - char *buf,*obuf; + char *buf; int l; STRING str; val = asir_pop_one(); if ( !val ) - obuf = "0"; + buf = "0"; else { l = estimate_length(CO,val); buf = (char *)ALLOCA(l+1); soutput_init(buf); 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); } @@ -669,10 +669,12 @@ int asir_executeString() #if defined(PARI) recover(0); /* environement is defined in libpari.a */ +# if !(PARI_VERSION_CODE > 131588 ) if ( setjmp(environnement) ) { avma = top; recover(1); resetenv(""); } +# endif #endif cmd = ((STRING)asir_pop_one())->body; parse_strp = cmd;