| version 1.47, 2015/08/06 10:01:51 | 
version 1.55, 2017/09/04 02:10:33 | 
 | 
 | 
|   * 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/builtin/ctrl.c,v 1.46 2015/08/04 06:20:44 noro Exp $ | 
  * $OpenXM: OpenXM_contrib2/asir2000/builtin/ctrl.c,v 1.54 2017/09/04 01:57:53 noro Exp $ | 
|  */ | 
 */ | 
|  #include "ca.h" | 
 #include "ca.h" | 
|  #include "parse.h" | 
 #include "parse.h" | 
|  #include <string.h> | 
 #include <string.h> | 
|  #if defined(VISUAL) || defined(__MINGW32__) || defined(__MINGW64__) | 
 #if defined(VISUAL) || defined(__MINGW32__) | 
|  #include <windows.h> | 
 #include <windows.h> | 
|  #include <winnls.h> | 
 #include <winnls.h> | 
|  #else | 
 #else | 
| Line 112  extern int diag_period; | 
 
  | 
| Line 112  extern int diag_period; | 
 
 
 | 
|  extern int weight_check; | 
 extern int weight_check; | 
|  extern char **ASIRLOADPATH; | 
 extern char **ASIRLOADPATH; | 
|  extern int ASIRLOADPATH_LEN; | 
 extern int ASIRLOADPATH_LEN; | 
|   | 
 extern int No_ox_reset; | 
|   | 
 extern int plot_by_bigfloat; | 
|   | 
 extern int debug_plot; | 
|   | 
  | 
|  static struct { | 
 static struct { | 
|          char *key; | 
         char *key; | 
 | 
 | 
|          {"no_debug_on_error",&no_debug_on_error}, | 
         {"no_debug_on_error",&no_debug_on_error}, | 
|          {"diag_period",&diag_period}, | 
         {"diag_period",&diag_period}, | 
|          {"weight_check",&weight_check}, | 
         {"weight_check",&weight_check}, | 
|   | 
         {"no_ox_reset",&No_ox_reset}, | 
|   | 
         {"fake_ox_reset",&No_ox_reset}, | 
|   | 
 #if defined(DO_PLOT) | 
|   | 
         {"plot_by_bigfloat",&plot_by_bigfloat}, | 
|   | 
         {"debug_plot",&debug_plot}, | 
|   | 
 #endif | 
|  #if defined(INTERVAL) | 
 #if defined(INTERVAL) | 
|          {"zerorewrite",&zerorewrite}, | 
         {"zerorewrite",&zerorewrite}, | 
|          {"itvplotsize",&Itvplot}, | 
         {"itvplotsize",&Itvplot}, | 
 | 
 | 
|          {0,0}, | 
         {0,0}, | 
|  }; | 
 }; | 
|   | 
  | 
|  void Pctrl(arg,rp) | 
 void Pctrl(NODE arg,Q *rp) | 
|  NODE arg; | 
  | 
|  Q *rp; | 
  | 
|  { | 
 { | 
|          int t,i,n; | 
         int t,i,n; | 
|          int nm,dv; | 
         int nm,dv; | 
 | 
 | 
|          STRING s; | 
         STRING s; | 
|          NODE node,p; | 
         NODE node,p; | 
|          LIST list; | 
         LIST list; | 
|   | 
         P f; | 
|   | 
         extern Q ox_pari_stream; | 
|   | 
         extern int ox_pari_stream_initialized; | 
|   | 
         extern P ox_pari_starting_function; | 
|   | 
  | 
|          if ( !arg ) { | 
         if ( !arg ) { | 
|                  *rp = 0; | 
                 *rp = 0; | 
 | 
 | 
|                                          MKNODE(node,s,p); | 
                                         MKNODE(node,s,p); | 
|                                  } | 
                                 } | 
|                                  MKLIST(list,node); | 
                                 MKLIST(list,node); | 
|                                  *rp = list; | 
                                 *rp = (Q)list; | 
|                          } | 
                         } | 
|                  } else { | 
                 } else { | 
|                          list = (LIST)ARG1(arg); | 
                         list = (LIST)ARG1(arg); | 
 | 
 | 
|                          } | 
                         } | 
|                  } | 
                 } | 
|                  return; | 
                 return; | 
|   | 
         } else if ( !strcmp(key,"oxpari_id") ) { | 
|   | 
         if ( argc(arg) == 1 ) { | 
|   | 
             if(!ox_pari_stream_initialized) { | 
|   | 
                 t=-1; | 
|   | 
                 STOQ(t,*rp); | 
|   | 
             }else { | 
|   | 
                 *rp = ox_pari_stream; | 
|   | 
             } | 
|   | 
         }else { | 
|   | 
                         c = (Q)ARG1(arg); | 
|   | 
                         if ( !c || ( NUM(c) && INT(c) && SGN(c)>0 ) ) { | 
|   | 
                                 ox_pari_stream_initialized = 1; | 
|   | 
                                 ox_pari_stream = c; | 
|   | 
                                 *rp = c; | 
|   | 
                         }else { | 
|   | 
                 t=-1; | 
|   | 
                 STOQ(t,*rp); | 
|   | 
                         } | 
|   | 
                 } | 
|   | 
                 return; | 
|   | 
         } else if ( !strcmp(key,"oxpari_start") ) { | 
|   | 
         if ( argc(arg) == 1 ) { | 
|   | 
                         *rp = (Q)ox_pari_starting_function; | 
|   | 
                 } else { | 
|   | 
                         f = (P)ARG1(arg); | 
|   | 
                         if ( !f || OID(f) == O_P) { | 
|   | 
                                 ox_pari_starting_function = f; | 
|   | 
                                 *rp = (Q)f; | 
|   | 
                         }else { | 
|   | 
                                 *rp = 0; | 
|   | 
                         } | 
|   | 
                 } | 
|   | 
                 return; | 
|          } | 
         } | 
|          for ( i = 0; ctrls[i].key; i++ ) | 
         for ( i = 0; ctrls[i].key; i++ ) | 
|                  if ( !strcmp(key,ctrls[i].key) ) | 
                 if ( !strcmp(key,ctrls[i].key) ) | 
| Line 292  void Psysinfo(LIST *rp) | 
 
  | 
| Line 336  void Psysinfo(LIST *rp) | 
 
 
 | 
|      MKLIST(*rp,n); | 
     MKLIST(*rp,n); | 
|  } | 
 } | 
|   | 
  | 
|  #if !defined(VISUAL) && !defined(__MINGW32__) && !defined(__MINGW64__) | 
 #if !defined(VISUAL) && !defined(__MINGW32__) | 
|   | 
  | 
|  static char *get_lang() | 
 static char *get_lang() | 
|  { | 
 { |