=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/eval.c,v retrieving revision 1.74 retrieving revision 1.77 diff -u -p -r1.74 -r1.77 --- OpenXM_contrib2/asir2000/parse/eval.c 2015/08/14 13:51:56 1.74 +++ OpenXM_contrib2/asir2000/parse/eval.c 2017/08/31 02:36:21 1.77 @@ -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/eval.c,v 1.73 2015/08/08 14:19:42 fujimoto Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.76 2017/02/07 08:30:31 noro Exp $ */ #include #include "ca.h" @@ -64,7 +64,6 @@ extern NODE PVSS; int f_break,f_return,f_continue; int evalstatline; -int recv_intr; int show_crossref; int at_root; void gen_searchf_searchonly(char *name,FUNC *r,int global); @@ -80,7 +79,7 @@ pointer eval(FNODE f) R u; DP dp; unsigned int pv; - int c,ret; + int c,ret,pos; FNODE f1; UP2 up2; UP up; @@ -93,16 +92,7 @@ pointer eval(FNODE f) QUOTE expr,pattern; #if defined(VISUAL) || defined(__MINGW32__) - if ( recv_intr ) { -#include - if ( recv_intr == 1 ) { - recv_intr = 0; - int_handler(SIGINT); - } else { - recv_intr = 0; - ox_usr1_handler(0); - } - } + check_intr(); #endif if ( !f ) return ( 0 ); @@ -178,6 +168,9 @@ pointer eval(FNODE f) case I_EV: evalnodebody((NODE)FA0(f),&tn); nodetod(tn,&dp); val = (pointer)dp; break; + case I_EVM: + evalnodebody((NODE)FA0(f),&tn); pos = eval((FNODE)FA1(f)); nodetodpm(tn,pos,&dp); val = (pointer)dp; + break; case I_FUNC: val = evalf((FUNC)FA0(f),(FNODE)FA1(f),0); break; case I_FUNC_OPT: @@ -1642,7 +1635,7 @@ MODULE mkmodule(char *name) mod->name = (char *)MALLOC_ATOMIC(len+1); strcpy(mod->name,name); mod->pvs = mpvs = (VS)MALLOC(sizeof(struct oVS)); - reallocarray((char **)&mpvs->va,(int *)&mpvs->asize, + asir_reallocarray((char **)&mpvs->va,(int *)&mpvs->asize, (int *)&mpvs->n,(int)sizeof(struct oPV)); mod->usrf_list = 0; MKNODE(m,mod,MODULE_LIST);