=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/plot/ox_plot.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -p -r1.30 -r1.31 --- OpenXM_contrib2/asir2000/plot/ox_plot.c 2017/08/30 09:40:30 1.30 +++ OpenXM_contrib2/asir2000/plot/ox_plot.c 2018/03/29 01:32:55 1.31 @@ -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/plot/ox_plot.c,v 1.29 2015/08/14 13:51:56 fujimoto Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/plot/ox_plot.c,v 1.30 2017/08/30 09:40:30 ohara Exp $ */ #include "ca.h" #include "parse.h" @@ -100,252 +100,252 @@ void ox_plot_main() void ox_plot_main(int argc,char **argv) #endif { - int ds; - fd_set r; - int n; - int use_x; + int ds; + fd_set r; + int n; + int use_x; #if !defined(VISUAL) && !defined(__MINGW32__) - ox_asir_init(argc,argv,"ox_plot"); - use_x=init_plot_display(argc,argv); - if(use_x) ds=ConnectionNumber(display); - else fprintf(stderr,"Entering no X mode\n"); + ox_asir_init(argc,argv,"ox_plot"); + use_x=init_plot_display(argc,argv); + if(use_x) ds=ConnectionNumber(display); + else fprintf(stderr,"Entering no X mode\n"); #endif - if(do_message)fprintf(stderr,"I'm an ox_plot, Version %d.\n",ASIR_VERSION); - if(SETJMP(ox_env)){ - while(NEXT(asir_infile))closecurrentinput(); - reset_current_computation(); - ox_send_sync(0); - } - while (1){ + if(do_message)fprintf(stderr,"I'm an ox_plot, Version %d.\n",ASIR_VERSION); + if(SETJMP(ox_env)){ + while(NEXT(asir_infile))closecurrentinput(); + reset_current_computation(); + ox_send_sync(0); + } + while (1){ #if defined(VISUAL) || defined(__MINGW32__) - process_ox(); + process_ox(); #else - if(ox_data_is_available(0)) process_ox(); - else if(use_x){ - FD_ZERO(&r); - FD_SET(3,&r); FD_SET(ds,&r); - select(FD_SETSIZE,&r,NULL,NULL,NULL); - if(FD_ISSET(3,&r)) process_ox(); - else if(FD_ISSET(ds,&r)) process_xevent(); - } - } + if(ox_data_is_available(0)) process_ox(); + else if(use_x){ + FD_ZERO(&r); + FD_SET(3,&r); FD_SET(ds,&r); + select(FD_SETSIZE,&r,NULL,NULL,NULL); + if(FD_ISSET(3,&r)) process_ox(); + else if(FD_ISSET(ds,&r)) process_xevent(); + } + } #endif } static void process_ox(){ - int id; - unsigned int cmd; - Obj obj; - ERR err; - unsigned int serial; - int ret; + int id; + unsigned int cmd; + Obj obj; + ERR err; + unsigned int serial; + int ret; - serial=ox_recv(0,&id,&obj); - if(do_message) fprintf(stderr,"#%d Got %s",serial,name_of_id(id)); - switch (id){ - case OX_COMMAND: - cmd=((USINT)obj)->body; - if(ox_flushing) break; - if(do_message) fprintf(stderr," %s\n",name_of_cmd(cmd)); - ret=SETJMP(main_env); - if(ret){ - if(ret==1){ - create_error(&err,serial,LastError,0); - asir_push_one((Obj)err); - } - break; - } - asir_do_cmd(cmd,serial); - break; - case OX_DATA: - case OX_LOCAL_OBJECT_ASIR: - if(ox_flushing)break; - if(do_message)fprintf(stderr," -> data pushed"); - asir_push_one(obj); - break; - case OX_SYNC_BALL: - asir_end_flush(); - break; - default: - break; - } - if(do_message)fprintf(stderr,"\n"); + serial=ox_recv(0,&id,&obj); + if(do_message) fprintf(stderr,"#%d Got %s",serial,name_of_id(id)); + switch (id){ + case OX_COMMAND: + cmd=((USINT)obj)->body; + if(ox_flushing) break; + if(do_message) fprintf(stderr," %s\n",name_of_cmd(cmd)); + ret=SETJMP(main_env); + if(ret){ + if(ret==1){ + create_error(&err,serial,LastError,0); + asir_push_one((Obj)err); + } + break; + } + asir_do_cmd(cmd,serial); + break; + case OX_DATA: + case OX_LOCAL_OBJECT_ASIR: + if(ox_flushing)break; + if(do_message)fprintf(stderr," -> data pushed"); + asir_push_one(obj); + break; + case OX_SYNC_BALL: + asir_end_flush(); + break; + default: + break; + } + if(do_message)fprintf(stderr,"\n"); } static void asir_do_cmd(unsigned int cmd,unsigned int serial){ - MATHCAP client_mathcap; - LIST list; - int i; - Q q; + MATHCAP client_mathcap; + LIST list; + int i; + Q q; - switch (cmd){ - case SM_dupErrors: - list=asir_GetErrorList(); - asir_push_one((Obj)list); - break; - case SM_getsp: - i=asir_OperandStackPtr+1; - STOQ(i,q); - asir_push_one((Obj)q); - break; - case SM_popSerializedLocalObject: - asir_popSerializedLocalObject(); - break; - case SM_popCMO: - asir_popCMO(serial); - break; - case SM_popString: - asir_popString(); - break; - case SM_setName: - asir_setName(serial); - break; - case SM_evalName: - asir_evalName(serial); - break; - case SM_executeStringByLocalParser: - asir_executeString(); - break; - case SM_executeFunction: - asir_executeFunction(serial); - break; - case SM_shutdown: - asir_terminate(2); - break; - case SM_pops: - asir_pops(); - break; - case SM_mathcap: - asir_push_one((Obj)my_mathcap); - break; - case SM_setMathcap: - client_mathcap=(MATHCAP)asir_pop_one(); - store_remote_mathcap(0,client_mathcap); - break; - case SM_nop: - default: - break; - } + switch (cmd){ + case SM_dupErrors: + list=asir_GetErrorList(); + asir_push_one((Obj)list); + break; + case SM_getsp: + i=asir_OperandStackPtr+1; + STOQ(i,q); + asir_push_one((Obj)q); + break; + case SM_popSerializedLocalObject: + asir_popSerializedLocalObject(); + break; + case SM_popCMO: + asir_popCMO(serial); + break; + case SM_popString: + asir_popString(); + break; + case SM_setName: + asir_setName(serial); + break; + case SM_evalName: + asir_evalName(serial); + break; + case SM_executeStringByLocalParser: + asir_executeString(); + break; + case SM_executeFunction: + asir_executeFunction(serial); + break; + case SM_shutdown: + asir_terminate(2); + break; + case SM_pops: + asir_pops(); + break; + case SM_mathcap: + asir_push_one((Obj)my_mathcap); + break; + case SM_setMathcap: + client_mathcap=(MATHCAP)asir_pop_one(); + store_remote_mathcap(0,client_mathcap); + break; + case SM_nop: + default: + break; + } } static void asir_executeFunction(int serial){ - char *fn; - int argc,id,fno; - FUNC f; - Q ret; - VL vl; - ERR err; - NODE n,n1; - LIST bytes; + char *fn; + int argc,id,fno; + FUNC f; + Q ret; + VL vl; + ERR err; + NODE n,n1; + LIST bytes; - fn=((STRING)asir_pop_one())->body; - argc=(int)(((USINT)asir_pop_one())->body); - for(n=0;argc;argc--){ - NEXTNODE(n,n1); - BDY(n1)=(pointer)asir_pop_one(); - } - if(n)NEXT(n1)=0; - id=-1; - fno=modeNO(fn); - switch (fno){ - case 0://IFPLOT - id=plot(n,fno); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 1://CONPLOT - id=plot(n,fno); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 2://PLOT - id=plot(n,fno); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 4://POLARPLOT - id=plot(n,fno); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 30://MEMORY_PLOT - memory_plot(n,&bytes); - asir_push_one((Obj)bytes); - break; - case 31://ARRAYPLOT - id=arrayplot(n); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 32://OPEN_CANVAS - id=open_canvas(n); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 5://PLOTOVER - plotover(n); - break; - case 33://DRAWCIRCLE - drawcircle(n); - break; - case 34://DRAW_OBJ - if(draw_obj(n) < 0 ){ - create_error(&err,serial,LastError,0); - asir_push_one((Obj)err); - } - break; - case 35://DRAW_STRING - if(draw_string(n)<0){ - create_error(&err,serial,LastError,0); - asir_push_one((Obj)err); - } - break; - case 37://CLEAR_CANVAS - clear_canvas(n); - break; + fn=((STRING)asir_pop_one())->body; + argc=(int)(((USINT)asir_pop_one())->body); + for(n=0;argc;argc--){ + NEXTNODE(n,n1); + BDY(n1)=(pointer)asir_pop_one(); + } + if(n)NEXT(n1)=0; + id=-1; + fno=modeNO(fn); + switch (fno){ + case 0://IFPLOT + id=plot(n,fno); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 1://CONPLOT + id=plot(n,fno); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 2://PLOT + id=plot(n,fno); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 4://POLARPLOT + id=plot(n,fno); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 30://MEMORY_PLOT + memory_plot(n,&bytes); + asir_push_one((Obj)bytes); + break; + case 31://ARRAYPLOT + id=arrayplot(n); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 32://OPEN_CANVAS + id=open_canvas(n); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 5://PLOTOVER + plotover(n); + break; + case 33://DRAWCIRCLE + drawcircle(n); + break; + case 34://DRAW_OBJ + if(draw_obj(n) < 0 ){ + create_error(&err,serial,LastError,0); + asir_push_one((Obj)err); + } + break; + case 35://DRAW_STRING + if(draw_string(n)<0){ + create_error(&err,serial,LastError,0); + asir_push_one((Obj)err); + } + break; + case 37://CLEAR_CANVAS + clear_canvas(n); + break; // ifplotNG - case 36://OBJ_CP - id=objcp(n); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 6://IFPLOTD - case 7://IFPLOTQ - case 8://IFPLOTB - case 9://INEQND - case 10://INEQNQ - case 11://INEQNB - case 21://CONPLOTD - case 22://CONPLOTQ - case 23://CONPLOTB + case 36://OBJ_CP + id=objcp(n); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 6://IFPLOTD + case 7://IFPLOTQ + case 8://IFPLOTB + case 9://INEQND + case 10://INEQNQ + case 11://INEQNB + case 21://CONPLOTD + case 22://CONPLOTQ + case 23://CONPLOTB #if defined(INTERVAL) - case 24://ITVIFPLOT + case 24://ITVIFPLOT #endif - id=ifplotNG(n,fno); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 12://INEQNDAND - case 13://INEQNQAND - case 14://INEQNBAND - case 15://INEQNDOR - case 16://INEQNQOR - case 17://INEQNBOR - case 18://INEQNDXOR - case 19://INEQNQXOR - case 20://INEQNBXOR - case 25://PLOTOVERD - case 26://PLOTOVERQ - case 27://PLOTOVERB - id=ifplotOP(n,fno); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - case 38://POLARPLOTD - id=polarplotNG(n); - STOQ(id,ret); - asir_push_one((Obj)ret); - break; - } + id=ifplotNG(n,fno); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 12://INEQNDAND + case 13://INEQNQAND + case 14://INEQNBAND + case 15://INEQNDOR + case 16://INEQNQOR + case 17://INEQNBOR + case 18://INEQNDXOR + case 19://INEQNQXOR + case 20://INEQNBXOR + case 25://PLOTOVERD + case 26://PLOTOVERQ + case 27://PLOTOVERB + id=ifplotOP(n,fno); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + case 38://POLARPLOTD + id=polarplotNG(n); + STOQ(id,ret); + asir_push_one((Obj)ret); + break; + } }