=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/glob.c,v retrieving revision 1.92 retrieving revision 1.96 diff -u -p -r1.92 -r1.96 --- OpenXM_contrib2/asir2000/parse/glob.c 2016/08/24 05:33:58 1.92 +++ OpenXM_contrib2/asir2000/parse/glob.c 2017/08/29 07:18:30 1.96 @@ -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/glob.c,v 1.91 2015/08/19 05:29:23 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/glob.c,v 1.95 2017/02/07 08:30:31 noro Exp $ */ #include "ca.h" #include "al.h" @@ -162,9 +162,9 @@ void glob_init() { VR(&oVLIST[i]) = &oVAR[i]; NEXT(&oVLIST[i]) = &oVLIST[i+1]; } VR(&oVLIST[i]) = &oVAR[i]; NEXT(&oVLIST[i]) = 0; - reallocarray((char **)&GPVS->va,(int *)&GPVS->asize,(int *)&GPVS->n,(int)sizeof(struct oPV)); - reallocarray((char **)&APVS->va,(int *)&APVS->asize,(int *)&APVS->n,(int)sizeof(struct oPV)); - reallocarray((char **)&PPVS->va,(int *)&PPVS->asize,(int *)&PPVS->n,(int)sizeof(struct oPV)); + asir_reallocarray((char **)&GPVS->va,(int *)&GPVS->asize,(int *)&GPVS->n,(int)sizeof(struct oPV)); + asir_reallocarray((char **)&APVS->va,(int *)&APVS->asize,(int *)&APVS->n,(int)sizeof(struct oPV)); + asir_reallocarray((char **)&PPVS->va,(int *)&PPVS->asize,(int *)&PPVS->n,(int)sizeof(struct oPV)); CPVS = GPVS; MKNODE(ONENODE,mkfnode(1,I_FORMULA,ONE),NULLP); OID(F_TRUE)=O_F; FOP(F_TRUE)=AL_TRUE; F_TRUE->arg.dummy = 0; @@ -190,6 +190,7 @@ void notdef(VL vl,Obj a,Obj b,Obj *c) error("undefined arithmetic operation."); } +int disable_debugger; int do_asirrc; int do_file; char *do_filename; @@ -354,6 +355,9 @@ void process_args(int ac,char **av) #if !defined(MPI) do_message = 1; #endif +#if defined(VISUAL) && defined(VISUAL_CONSOLE) + disable_debugger=1; +#endif do_quiet = 0; while ( ac > 0 ) { if ( !strcmp(*av,"-heap") && (ac >= 2) ) { @@ -374,6 +378,11 @@ void process_args(int ac,char **av) av += 2; ac -= 2; } else if ( !strcmp(*av,"-cpp") && (ac >= 2) ) { strcpy(cppname,*(av+1)); av += 2; ac -= 2; + } else if ( !strcmp(*av,"-d") && (ac >= 2) ) { +#if defined(VISUAL) && defined(VISUAL_CONSOLE) + disable_debugger=0; +#endif + av += 2; ac -= 2; } else if ( !strcmp(*av,"-f") && (ac >= 2) ) { do_quiet = 1; in_fp = fopen(*(av+1),"r"); @@ -534,7 +543,7 @@ void int_handler(int sig) NODE t; - if ( do_file ) { + if ( do_file || disable_debugger ) { ExitAsir(); } if ( !ox_get_pari_result && critical_when_signal ) { @@ -884,13 +893,14 @@ char *scopyright() } #if defined(VISUAL) || defined(__MINGW32__) +int recv_intr; void check_intr() { extern int recv_intr; if ( recv_intr ) { if ( recv_intr == 1 ) { recv_intr = 0; - int_handler(0); + int_handler(SIGINT); } else { recv_intr = 0; ox_usr1_handler(0);