The R Project SVN R

Rev

Rev 8505 | Rev 9147 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8505 Rev 8628
Line 537... Line 537...
537
	if (xdims != R_NilValue || ydims != R_NilValue) {
537
	if (xdims != R_NilValue || ydims != R_NilValue) {
538
	    SEXP dimnames, dimnamesnames, dn;
538
	    SEXP dimnames, dimnamesnames, dn;
539
	    PROTECT(dimnames = allocVector(VECSXP, 2));
539
	    PROTECT(dimnames = allocVector(VECSXP, 2));
540
	    PROTECT(dimnamesnames = allocVector(STRSXP, 2));
540
	    PROTECT(dimnamesnames = allocVector(STRSXP, 2));
541
	    if (xdims != R_NilValue) {
541
	    if (xdims != R_NilValue) {
-
 
542
		if (ldx == 2 || ncx ==1) {
542
		dn = getAttrib(xdims, R_NamesSymbol);
543
		    dn = getAttrib(xdims, R_NamesSymbol);
543
		VECTOR(dimnames)[0] = VECTOR(xdims)[0];
544
		    VECTOR(dimnames)[0] = VECTOR(xdims)[0];
544
		if(!isNull(dn))
545
		    if(!isNull(dn))
545
		    STRING(dimnamesnames)[0] = STRING(dn)[0];
546
			STRING(dimnamesnames)[0] = STRING(dn)[0];
-
 
547
		}
546
	    }
548
	    }
547
	    if (ydims != R_NilValue) {
549
	    if (ydims != R_NilValue) {
-
 
550
		if (ldy == 2 ){
548
		dn = getAttrib(ydims, R_NamesSymbol);
551
		    dn = getAttrib(ydims, R_NamesSymbol);
549
		VECTOR(dimnames)[1] = VECTOR(ydims)[1];
552
		    VECTOR(dimnames)[1] = VECTOR(ydims)[1];
550
		if(!isNull(dn))
553
		    if(!isNull(dn))
551
		    STRING(dimnamesnames)[1] = STRING(dn)[1];
554
			STRING(dimnamesnames)[1] = STRING(dn)[1];
-
 
555
		} else if (nry == 1) {
-
 
556
		    dn = getAttrib(ydims, R_NamesSymbol);
-
 
557
		    VECTOR(dimnames)[1] = VECTOR(ydims)[0];
-
 
558
		    if(!isNull(dn))
-
 
559
			STRING(dimnamesnames)[1] = STRING(dn)[0];
-
 
560
		}
552
	    }
561
	    }
553
	    setAttrib(dimnames, R_NamesSymbol, dimnamesnames);
562
	    setAttrib(dimnames, R_NamesSymbol, dimnamesnames);
554
	    setAttrib(ans, R_DimNamesSymbol, dimnames);
563
	    setAttrib(ans, R_DimNamesSymbol, dimnames);
555
	    UNPROTECT(2);
564
	    UNPROTECT(2);
556
	}
565
	}