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

Diff for /OpenXM_contrib2/asir2000/builtin/array.c between version 1.29 and 1.30

version 1.29, 2003/06/09 16:18:09 version 1.30, 2003/06/10 16:54:13
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/array.c,v 1.28 2003/05/29 16:44:59 saito Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/array.c,v 1.29 2003/06/09 16:18:09 saito Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "base.h"  #include "base.h"
Line 495  void Pmat(NODE arg, MAT *rp)
Line 495  void Pmat(NODE arg, MAT *rp)
         }          }
   
         for (row = 0, tn = arg; tn; tn = NEXT(tn), row++);          for (row = 0, tn = arg; tn; tn = NEXT(tn), row++);
           if ( row == 1 ) {
                   if ( OID(ARG0(arg)) == O_MAT ) {
                           *rp=ARG0(arg);
                           return;
                   } else if ( !(OID(ARG0(arg)) == O_LIST || OID(ARG0(arg)) == O_VECT)) {
                           error("mat : invalid argument");
                   }
           }
         if ( OID(ARG0(arg)) == O_VECT ) {          if ( OID(ARG0(arg)) == O_VECT ) {
                 v = ARG0(arg);                  v = ARG0(arg);
                 col = v->len;                  col = v->len;
         } else if ( OID(ARG0(arg)) == O_LIST ) {          } else if ( OID(ARG0(arg)) == O_LIST ) {
                 for (col = 0, tn = BDY((LIST)ARG0(arg)); tn ; tn = NEXT(tn), col++);                  for (col = 0, tn = BDY((LIST)ARG0(arg)); tn ; tn = NEXT(tn), col++);
           } else {
                   error("mat : invalid argument");
         }          }
   
         MKMAT(m,row,col);          MKMAT(m,row,col);
Line 536  void Pmatc(NODE arg, MAT *rp)
Line 546  void Pmatc(NODE arg, MAT *rp)
         }          }
   
         for (col = 0, tn = arg; tn; tn = NEXT(tn), col++);          for (col = 0, tn = arg; tn; tn = NEXT(tn), col++);
           if ( col == 1 ) {
                   if ( OID(ARG0(arg)) == O_MAT ) {
                           *rp=ARG0(arg);
                           return;
                   } else if ( !(OID(ARG0(arg)) == O_LIST || OID(ARG0(arg)) == O_VECT)) {
                           error("matc : invalid argument");
                   }
           }
         if ( OID(ARG0(arg)) == O_VECT ) {          if ( OID(ARG0(arg)) == O_VECT ) {
                 v = ARG0(arg);                  v = ARG0(arg);
                 row = v->len;                  row = v->len;
         } else if ( OID(ARG0(arg)) == O_LIST ) {          } else if ( OID(ARG0(arg)) == O_LIST ) {
                 for (row = 0, tn = BDY((LIST)ARG0(arg)); tn ; tn = NEXT(tn), row++);                  for (row = 0, tn = BDY((LIST)ARG0(arg)); tn ; tn = NEXT(tn), row++);
           } else {
                   error("matc : invalid argument");
         }          }
   
         MKMAT(m,row,col);          MKMAT(m,row,col);

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

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