=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/main.c,v retrieving revision 1.11 retrieving revision 1.15 diff -u -p -r1.11 -r1.15 --- OpenXM_contrib2/asir2000/parse/main.c 2001/10/09 01:36:24 1.11 +++ OpenXM_contrib2/asir2000/parse/main.c 2001/12/28 02:17:33 1.15 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/main.c,v 1.10 2001/08/20 09:03:28 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/main.c,v 1.14 2001/12/27 07:51:17 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -53,10 +53,11 @@ #if PARI #include "genpari.h" +/* XXX : environment is defined in libpari.a */ extern jmp_buf environnement; #endif -extern jmp_buf main_env; +extern JMP_BUF main_env; #if defined(INTERVAL) #ifndef ASIRRCNAME @@ -75,10 +76,6 @@ void recover(); extern int mpi_nprocs,mpi_myid; -#if MPI -int *StackBottom; -#endif - #if defined(VISUAL_LIB) void Main(int argc,char *argv[]) #else @@ -88,6 +85,7 @@ void main(int argc,char *argv[]) #endif { + int tmp; FILE *ifp; char ifname[BUFSIZ]; extern int GC_dont_gc; @@ -95,16 +93,16 @@ main(int argc,char *argv[]) extern int do_asirrc; extern int do_file; extern FILE *in_fp; + extern int *StackBottom; char *getenv(); char *homedir; char *ptr; #if !defined(VISUAL) - int tmp; char *slash,*binname; #endif -#if MPI StackBottom = &tmp; +#if MPI mpi_init(); if ( mpi_myid ) { int slave_argc; @@ -123,17 +121,17 @@ main(int argc,char *argv[]) binname = slash+1; else binname = argv[0]; - if ( !strcmp(binname,"ox_asir") ) { + if ( !strncmp(binname,"ox_asir",strlen("ox_asir")) ) { /* never return */ ox_main(argc,argv); exit(0); #if DO_PLOT - } else if ( !strcmp(binname,"ox_plot") ) { + } else if ( !strncmp(binname,"ox_plot",strlen("ox_plot")) ) { /* never return */ ox_plot_main(argc,argv); exit(0); #endif - } else if ( !strcmp(binname,"ox_launch") ) { + } else if ( !strncmp(binname,"ox_launch",strlen("ox_launch")) ) { /* never return */ launch_main(argc,argv); exit(0); @@ -185,7 +183,7 @@ main(int argc,char *argv[]) if ( do_asirrc && (ifp = fopen(ifname,"r")) ) { input_init(ifp,ifname); - if ( !setjmp(main_env) ) { + if ( !SETJMP(main_env) ) { read_exec_file = 1; read_eval_loop(); read_exec_file = 0; @@ -201,12 +199,13 @@ main(int argc,char *argv[]) while ( 1 ) { #if PARI recover(0); + /* XXX environement is defined in libpari.a */ if ( setjmp(environnement) ) { avma = top; recover(1); resetenv(""); } #endif - if ( setjmp(main_env) ) + if ( SETJMP(main_env) ) prompt(); read_eval_loop(); }