=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/plot/ox_plot.c,v retrieving revision 1.14 retrieving revision 1.22 diff -u -p -r1.14 -r1.22 --- OpenXM_contrib2/asir2000/plot/ox_plot.c 2001/12/25 02:39:07 1.14 +++ OpenXM_contrib2/asir2000/plot/ox_plot.c 2011/08/10 04:51:58 1.22 @@ -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.13 2001/10/09 01:36:27 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/plot/ox_plot.c,v 1.21 2006/02/08 02:11:20 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -53,7 +53,7 @@ #include "ifplot.h" #include "version.h" #include -#if PARI +#if defined(PARI) #include "genpari.h" #endif @@ -63,7 +63,10 @@ extern int asir_OperandStackSize; extern Obj *asir_OperandStack; extern int asir_OperandStackPtr; -extern JMP_BUF environnement; +/* environement is defined in libpari.a */ +#if !(PARI_VERSION_CODE > 131588) +extern jmp_buf environnement; +#endif extern int do_message; extern int ox_flushing; @@ -71,10 +74,10 @@ extern JMP_BUF ox_env; extern MATHCAP my_mathcap; extern char LastError[]; -void create_error(ERR *,unsigned int ,char *); +void create_error(ERR *,unsigned int ,char *,LIST ); void ox_io_init(); -void ox_asir_init(int,char **); +void ox_asir_init(int,char **,char *); Obj asir_pop_one(); void asir_push_one(Obj); void asir_end_flush(); @@ -105,7 +108,7 @@ void ox_plot_main(int argc,char **argv) int use_x; #if !defined(VISUAL) - ox_asir_init(argc,argv); + ox_asir_init(argc,argv,"ox_plot"); use_x = init_plot_display(argc,argv); if ( use_x ) ds = ConnectionNumber(display); @@ -161,7 +164,7 @@ static void process_ox() fprintf(stderr," %s\n",name_of_cmd(cmd)); if ( ret = SETJMP(main_env) ) { if ( ret == 1 ) { - create_error(&err,serial,LastError); + create_error(&err,serial,LastError,0); asir_push_one((Obj)err); } break; @@ -237,6 +240,7 @@ static void asir_do_cmd(unsigned int cmd,unsigned int client_mathcap = (MATHCAP)asir_pop_one(); store_remote_mathcap(0,client_mathcap); break; + case SM_nop: default: break; } @@ -269,6 +273,32 @@ static void asir_executeFunction(int serial) STOQ(id,ret); asir_push_one((Obj)ret); } else if ( !strcmp(func,"memory_plot") ) { memory_plot(n,&bytes); asir_push_one((Obj)bytes); +#if defined(INTERVAL) + } else if ( !strcmp(func,"itvifplot") ) { + id = itvifplot(n); + STOQ(id,ret); asir_push_one((Obj)ret); + } else if ( !strcmp(func,"itvplot1") ) { + id = itvplot1(n); + STOQ(id,ret); asir_push_one((Obj)ret); + } else if ( !strcmp(func,"itvplot2") ) { + id = itvplot2(n); + STOQ(id,ret); asir_push_one((Obj)ret); + } else if ( !strcmp(func,"itvplot3") ) { + id = itvplot3(n); + STOQ(id,ret); asir_push_one((Obj)ret); + } else if ( !strcmp(func,"itvplot4") ) { + id = itvplot4(n); + STOQ(id,ret); asir_push_one((Obj)ret); + } else if ( !strcmp(func,"ineqnover") ) { + id = ineqnover(n); + STOQ(id,ret); asir_push_one((Obj)ret); + } else if ( !strcmp(func,"ineqn") ) { + id = ineqn(n); + STOQ(id,ret); asir_push_one((Obj)ret); + } else if ( !strcmp(func,"objcp") ) { + id = objcp(n); + STOQ(id,ret); asir_push_one((Obj)ret); +#endif } else if ( !strcmp(func,"arrayplot") ) { id = arrayplot(n); STOQ(id,ret); asir_push_one((Obj)ret); @@ -281,9 +311,14 @@ static void asir_executeFunction(int serial) drawcircle(n); } else if ( !strcmp(func,"draw_obj") ) { if ( draw_obj(n) < 0 ) { - create_error(&err,serial,LastError); + create_error(&err,serial,LastError,0); asir_push_one((Obj)err); } + } else if ( !strcmp(func,"draw_string") ) { + if ( draw_string(n) < 0 ) { + create_error(&err,serial,LastError,0); + asir_push_one((Obj)err); + } } else if ( !strcmp(func,"clear_canvas") ) { clear_canvas(n); }