[BACK]Return to ox_plot.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / plot

Diff for /OpenXM_contrib2/asir2000/plot/ox_plot.c between version 1.8 and 1.16

version 1.8, 2000/10/06 06:05:24 version 1.16, 2002/07/10 05:29:36
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/plot/ox_plot.c,v 1.7 2000/09/12 06:05:31 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/plot/ox_plot.c,v 1.15 2001/12/27 07:51:18 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 63  extern int asir_OperandStackSize;
Line 63  extern int asir_OperandStackSize;
 extern Obj *asir_OperandStack;  extern Obj *asir_OperandStack;
 extern int asir_OperandStackPtr;  extern int asir_OperandStackPtr;
   
   /* environement is defined in libpari.a */
 extern jmp_buf environnement;  extern jmp_buf environnement;
   
 extern int do_message;  extern int do_message;
 extern int ox_flushing;  extern int ox_flushing;
 extern jmp_buf ox_env;  extern JMP_BUF ox_env;
 extern MATHCAP my_mathcap;  extern MATHCAP my_mathcap;
   extern char LastError[];
   
 void create_error(ERR *,unsigned int ,char *);  void create_error(ERR *,unsigned int ,char *);
   
Line 92  static void asir_do_cmd(unsigned int,unsigned int);
Line 94  static void asir_do_cmd(unsigned int,unsigned int);
 static void process_ox();  static void process_ox();
 static void asir_executeFunction();  static void asir_executeFunction();
   
 void ox_plot_main(int argc,char **argv) {  #if defined(VISUAL)
   void ox_plot_main()
   #else
   void ox_plot_main(int argc,char **argv)
   #endif
   {
         int ds;          int ds;
         fd_set r;          fd_set r;
         int n;          int n;
           int use_x;
   
   #if !defined(VISUAL)
         ox_asir_init(argc,argv);          ox_asir_init(argc,argv);
         init_plot_display(argc,argv);          use_x = init_plot_display(argc,argv);
         ds = ConnectionNumber(display);          if ( use_x )
                   ds = ConnectionNumber(display);
           else
                   fprintf(stderr,"Entering no X mode\n");
   #endif
         if ( do_message )          if ( do_message )
                 fprintf(stderr,"I'm an ox_plot, Version %d.\n",ASIR_VERSION);                  fprintf(stderr,"I'm an ox_plot, Version %d.\n",ASIR_VERSION);
   
         if ( setjmp(ox_env) ) {          if ( SETJMP(ox_env) ) {
                 while ( NEXT(asir_infile) )                  while ( NEXT(asir_infile) )
                         closecurrentinput();                          closecurrentinput();
                 reset_current_computation();                  reset_current_computation();
                 ox_send_sync(0);                  ox_send_sync(0);
         }          }
         while ( 1 ) {          while ( 1 ) {
   #if defined(VISUAL)
                   process_ox();
   #else
                 if ( ox_data_is_available(0) )                  if ( ox_data_is_available(0) )
                         process_ox();                          process_ox();
                 else {                  else if ( use_x ) {
                         FD_ZERO(&r);                          FD_ZERO(&r);
                         FD_SET(3,&r); FD_SET(ds,&r);                          FD_SET(3,&r); FD_SET(ds,&r);
                         select(FD_SETSIZE,&r,NULL,NULL,NULL);                          select(FD_SETSIZE,&r,NULL,NULL,NULL);
Line 122  void ox_plot_main(int argc,char **argv) {
Line 138  void ox_plot_main(int argc,char **argv) {
                                 process_xevent();                                  process_xevent();
                 }                  }
         }          }
   #endif
 }  }
   
 static void process_ox()  static void process_ox()
Line 132  static void process_ox()
Line 149  static void process_ox()
         ERR err;          ERR err;
         unsigned int serial;          unsigned int serial;
         int ret;          int ret;
         extern char LastError[];  
   
         serial = ox_recv(0,&id,&obj);          serial = ox_recv(0,&id,&obj);
         if ( do_message )          if ( do_message )
Line 144  static void process_ox()
Line 160  static void process_ox()
                                 break;                                  break;
                         if ( do_message )                          if ( do_message )
                                 fprintf(stderr," %s\n",name_of_cmd(cmd));                                  fprintf(stderr," %s\n",name_of_cmd(cmd));
                         if ( ret = setjmp(env) ) {                          if ( ret = SETJMP(main_env) ) {
                                 if ( ret == 1 ) {                                  if ( ret == 1 ) {
                                         create_error(&err,serial,LastError);                                          create_error(&err,serial,LastError);
                                         asir_push_one((Obj)err);                                          asir_push_one((Obj)err);
Line 207  static void asir_do_cmd(unsigned int cmd,unsigned int 
Line 223  static void asir_do_cmd(unsigned int cmd,unsigned int 
                         asir_executeString();                          asir_executeString();
                         break;                          break;
                 case SM_executeFunction:                  case SM_executeFunction:
                         asir_executeFunction();                          asir_executeFunction(serial);
                         break;                          break;
                 case SM_shutdown:                  case SM_shutdown:
                         asir_terminate(2);                          asir_terminate(2);
Line 227  static void asir_do_cmd(unsigned int cmd,unsigned int 
Line 243  static void asir_do_cmd(unsigned int cmd,unsigned int 
         }          }
 }  }
   
 static void asir_executeFunction()  static void asir_executeFunction(int serial)
 {  {
         char *func;          char *func;
         int argc;          int argc;
Line 235  static void asir_executeFunction()
Line 251  static void asir_executeFunction()
         FUNC f;          FUNC f;
         Q ret;          Q ret;
         VL vl;          VL vl;
           ERR err;
         NODE n,n1;          NODE n,n1;
           LIST bytes;
   
         func = ((STRING)asir_pop_one())->body;          func = ((STRING)asir_pop_one())->body;
         argc = (int)(((USINT)asir_pop_one())->body);          argc = (int)(((USINT)asir_pop_one())->body);
Line 247  static void asir_executeFunction()
Line 265  static void asir_executeFunction()
         if ( n )          if ( n )
                 NEXT(n1) = 0;                  NEXT(n1) = 0;
         id = -1;          id = -1;
         if ( !strcmp(func,"plot") )          if ( !strcmp(func,"plot") ) {
                 id = plot(n);                  id = plot(n);
         else if ( !strcmp(func,"arrayplot") )                  STOQ(id,ret); asir_push_one((Obj)ret);
           } else if ( !strcmp(func,"memory_plot") ) {
                   memory_plot(n,&bytes); asir_push_one((Obj)bytes);
           } else if ( !strcmp(func,"arrayplot") ) {
                 id = arrayplot(n);                  id = arrayplot(n);
         else if ( !strcmp(func,"plotover") )                  STOQ(id,ret); asir_push_one((Obj)ret);
                 id = plotover(n);          } else if ( !strcmp(func,"open_canvas") ) {
         else if ( !strcmp(func,"drawcircle") )                  id = open_canvas(n);
                 id = drawcircle(n);                  STOQ(id,ret); asir_push_one((Obj)ret);
         STOQ(id,ret);          } else if ( !strcmp(func,"plotover") ) {
 #if 0                  plotover(n);
         asir_push_one((Obj)ret);          } else if ( !strcmp(func,"drawcircle") ) {
 #endif                  drawcircle(n);
           } else if ( !strcmp(func,"draw_obj") ) {
                   if ( draw_obj(n) < 0 ) {
                           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);
           }
 }  }

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.16

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>