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

Diff for /OpenXM_contrib2/asir2000/builtin/strobj.c between version 1.118 and 1.121

version 1.118, 2007/04/15 11:01:01 version 1.121, 2011/03/30 02:43:18
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/builtin/strobj.c,v 1.117 2006/08/27 22:17:27 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.120 2010/04/23 06:53:30 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 470  int register_conv_func(Obj arg)
Line 470  int register_conv_func(Obj arg)
         if ( !arg ) {          if ( !arg ) {
                 convfunc = 0;                  convfunc = 0;
                 return 1;                  return 1;
         } else if ( OID(arg) == O_P && (int)(VR((P)arg))->attr == V_SR ) {          } else if ( OID(arg) == O_P && (long)(VR((P)arg))->attr == V_SR ) {
                 convfunc = (FUNC)(VR((P)arg)->priv);                  convfunc = (FUNC)(VR((P)arg)->priv);
                 /* f must be a function which takes single argument */                  /* f must be a function which takes single argument */
                 return 1;                  return 1;
Line 849  void do_assign(NODE arg)
Line 849  void do_assign(NODE arg)
   
         for ( t = arg; t; t = NEXT(t) ) {          for ( t = arg; t; t = NEXT(t) ) {
                 pair = BDY((LIST)BDY(t));                  pair = BDY((LIST)BDY(t));
                 pv = (int)FA0((FNODE)BDY((QUOTE)BDY(pair)));                  pv = (long)FA0((FNODE)BDY((QUOTE)BDY(pair)));
                 value = (QUOTE)(BDY(NEXT(pair)));                  value = (QUOTE)(BDY(NEXT(pair)));
                 ASSPV(pv,value);                  ASSPV(pv,value);
         }          }
Line 1288  NODE arg;
Line 1288  NODE arg;
 Obj *rp;  Obj *rp;
 {  {
         FNODE fnode;          FNODE fnode;
           SNODE snode;
         char *cmd;          char *cmd;
 #if defined(PARI)  #if defined(PARI)
         void recover(int);          void recover(int);
Line 1301  Obj *rp;
Line 1302  Obj *rp;
 #  endif  #  endif
 #endif  #endif
         cmd = BDY((STRING)ARG0(arg));          cmd = BDY((STRING)ARG0(arg));
   #if 0
         exprparse_create_var(0,cmd,&fnode);          exprparse_create_var(0,cmd,&fnode);
         *rp = eval(fnode);          *rp = eval(fnode);
   #else
           exprparse_create_var(0,cmd,&snode);
           *rp = evalstat(snode);
   #endif
 }  }
   
 void Prtostr(arg,rp)  void Prtostr(arg,rp)
Line 1324  NODE arg;
Line 1330  NODE arg;
 P *rp;  P *rp;
 {  {
         char *p;          char *p;
           FUNC f;
   
         p = BDY((STRING)ARG0(arg));          p = BDY((STRING)ARG0(arg));
 #if 0  #if 0
Line 1337  P *rp;
Line 1344  P *rp;
                         makevar(p,rp);                          makevar(p,rp);
         }          }
 #else  #else
         makevar(p,rp);          gen_searchf_searchonly(p,&f);
           if ( f )
                   makesrvar(f,rp);
           else
                   makevar(p,rp);
 #endif  #endif
 }  }
   
Line 1425  char *symbol_name(char *name)
Line 1436  char *symbol_name(char *name)
   
 void Pget_function_name(NODE arg,STRING *rp)  void Pget_function_name(NODE arg,STRING *rp)
 {  {
                 QUOTEARG qa;          QUOTEARG qa;
                 ARF f;  
                 char *opname;  
   
                 qa = (QUOTEARG)BDY(arg);          qa = (QUOTEARG)BDY(arg);
                 if ( !qa || OID(qa) != O_QUOTEARG || qa->type != A_arf )          if ( !qa || OID(qa) != O_QUOTEARG ) {
                   *rp = 0; return;
           }
           switch ( qa->type ) {
                   case A_arf:
                           MKSTR(*rp,((ARF)BDY(qa))->name);
                           break;
                   case A_func:
                           MKSTR(*rp,((FUNC)BDY(qa))->name);
                           break;
                   default:
                         *rp = 0;                          *rp = 0;
                 else {                          break;
                         f = (ARF)BDY(qa);          }
                         opname = f->name;  
                         MKSTR(*rp,opname);  
                 }  
 }  }
   
 FNODE strip_paren(FNODE);  FNODE strip_paren(FNODE);

Legend:
Removed from v.1.118  
changed lines
  Added in v.1.121

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