=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/plot/ox_plot.c,v retrieving revision 1.12 retrieving revision 1.17 diff -u -p -r1.12 -r1.17 --- OpenXM_contrib2/asir2000/plot/ox_plot.c 2001/08/22 09:19:21 1.12 +++ OpenXM_contrib2/asir2000/plot/ox_plot.c 2002/08/02 02:28:29 1.17 @@ -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.11 2001/08/20 09:03:28 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/plot/ox_plot.c,v 1.16 2002/07/10 05:29:36 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -63,18 +63,19 @@ extern int asir_OperandStackSize; extern Obj *asir_OperandStack; extern int asir_OperandStackPtr; +/* environement is defined in libpari.a */ extern jmp_buf environnement; extern int do_message; extern int ox_flushing; -extern jmp_buf ox_env; +extern JMP_BUF ox_env; extern MATHCAP my_mathcap; extern char LastError[]; void create_error(ERR *,unsigned int ,char *); 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 +106,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); @@ -115,7 +116,7 @@ void ox_plot_main(int argc,char **argv) if ( do_message ) fprintf(stderr,"I'm an ox_plot, Version %d.\n",ASIR_VERSION); - if ( setjmp(ox_env) ) { + if ( SETJMP(ox_env) ) { while ( NEXT(asir_infile) ) closecurrentinput(); reset_current_computation(); @@ -159,7 +160,7 @@ static void process_ox() break; if ( do_message ) fprintf(stderr," %s\n",name_of_cmd(cmd)); - if ( ret = setjmp(main_env) ) { + if ( ret = SETJMP(main_env) ) { if ( ret == 1 ) { create_error(&err,serial,LastError); asir_push_one((Obj)err); @@ -242,8 +243,7 @@ static void asir_do_cmd(unsigned int cmd,unsigned int } } -static void asir_executeFunction(serial) -int serial; +static void asir_executeFunction(int serial) { char *func; int argc; @@ -285,6 +285,11 @@ int serial; create_error(&err,serial,LastError); asir_push_one((Obj)err); } + } else if ( !strcmp(func,"draw_string") ) { + if ( draw_string(n) < 0 ) { + create_error(&err,serial,LastError); + asir_push_one((Obj)err); + } } else if ( !strcmp(func,"clear_canvas") ) { clear_canvas(n); }