[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.9 and 1.20

version 1.9, 2000/11/07 06:06:40 version 1.20, 2004/02/13 05:48: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.8 2000/10/06 06:05:24 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/plot/ox_plot.c,v 1.19 2003/02/14 22:29:19 ohara Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 53 
Line 53 
 #include "ifplot.h"  #include "ifplot.h"
 #include "version.h"  #include "version.h"
 #include <signal.h>  #include <signal.h>
 #if PARI  #if defined(PARI)
 #include "genpari.h"  #include "genpari.h"
 #endif  #endif
   
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 */
   #if !(PARI_VERSION_CODE > 131588)
 extern jmp_buf environnement;  extern jmp_buf environnement;
   #endif
   
 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 *);
   
 void ox_io_init();  void ox_io_init();
 void ox_asir_init(int,char **);  void ox_asir_init(int,char **,char *);
 Obj asir_pop_one();  Obj asir_pop_one();
 void asir_push_one(Obj);  void asir_push_one(Obj);
 void asir_end_flush();  void asir_end_flush();
Line 101  void ox_plot_main(int argc,char **argv)
Line 105  void ox_plot_main(int argc,char **argv)
         int ds;          int ds;
         fd_set r;          fd_set r;
         int n;          int n;
           int use_x;
   
 #if !defined(VISUAL)  #if !defined(VISUAL)
         ox_asir_init(argc,argv);          ox_asir_init(argc,argv,"ox_plot");
         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  #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();
Line 122  void ox_plot_main(int argc,char **argv)
Line 130  void ox_plot_main(int argc,char **argv)
 #else  #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 143  static void process_ox()
Line 151  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 155  static void process_ox()
Line 162  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 218  static void asir_do_cmd(unsigned int cmd,unsigned int 
Line 225  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 233  static void asir_do_cmd(unsigned int cmd,unsigned int 
Line 240  static void asir_do_cmd(unsigned int cmd,unsigned int 
                         client_mathcap = (MATHCAP)asir_pop_one();                          client_mathcap = (MATHCAP)asir_pop_one();
                         store_remote_mathcap(0,client_mathcap);                          store_remote_mathcap(0,client_mathcap);
                         break;                          break;
                   case SM_nop:
                 default:                  default:
                         break;                          break;
         }          }
 }  }
   
 static void asir_executeFunction()  static void asir_executeFunction(int serial)
 {  {
         char *func;          char *func;
         int argc;          int argc;
Line 246  static void asir_executeFunction()
Line 254  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 261  static void asir_executeFunction()
Line 271  static void asir_executeFunction()
         if ( !strcmp(func,"plot") ) {          if ( !strcmp(func,"plot") ) {
                 id = plot(n);                  id = plot(n);
                 STOQ(id,ret); asir_push_one((Obj)ret);                  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") ) {          } else if ( !strcmp(func,"arrayplot") ) {
                 id = arrayplot(n);                  id = arrayplot(n);
                 STOQ(id,ret); asir_push_one((Obj)ret);                  STOQ(id,ret); asir_push_one((Obj)ret);
Line 272  static void asir_executeFunction()
Line 284  static void asir_executeFunction()
         } else if ( !strcmp(func,"drawcircle") ) {          } else if ( !strcmp(func,"drawcircle") ) {
                 drawcircle(n);                  drawcircle(n);
         } else if ( !strcmp(func,"draw_obj") ) {          } else if ( !strcmp(func,"draw_obj") ) {
                 draw_obj(n);                  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") ) {          } else if ( !strcmp(func,"clear_canvas") ) {
                 clear_canvas(n);                  clear_canvas(n);
         }          }

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.20

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