The R Project SVN R

Rev

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

Rev 6697 Rev 6700
Line 1085... Line 1085...
1085
	}
1085
	}
1086
    }
1086
    }
1087
 
1087
 
1088
    /* Adjustment of dimnames attributes. */
1088
    /* Adjustment of dimnames attributes. */
1089
    if (have_cnames | have_rnames) {
1089
    if (have_cnames | have_rnames) {
1090
	SEXP nam, tnam;
1090
	SEXP nam, tnam,v;
1091
	PROTECT(dn = allocVector(VECSXP, 2));
1091
	PROTECT(dn = allocVector(VECSXP, 2));
1092
	if (have_cnames)
1092
	if (have_cnames)
1093
	    nam = VECTOR(dn)[1] = allocVector(STRSXP, cols);
1093
	    nam = VECTOR(dn)[1] = allocVector(STRSXP, cols);
1094
	else
1094
	else
1095
	    nam = R_NilValue;	/* -Wall */
1095
	    nam = R_NilValue;	/* -Wall */
Line 1098... Line 1098...
1098
	    u = PRVALUE(CAR(t));
1098
	    u = PRVALUE(CAR(t));
1099
	    if (length(u) >= 0) {
1099
	    if (length(u) >= 0) {
1100
 
1100
 
1101
		if (isMatrix(u)) {
1101
		if (isMatrix(u)) {
1102
 
1102
 
1103
		    u = getAttrib(u, R_DimNamesSymbol);
1103
		    v = getAttrib(u, R_DimNamesSymbol);
1104
		    tnam = GetColNames(u);
1104
		    tnam = GetColNames(v);
1105
 
1105
 
1106
		    if (have_rnames &&
1106
		    if (have_rnames &&
1107
			GetRowNames(dn) == R_NilValue &&
1107
			GetRowNames(dn) == R_NilValue &&
1108
			GetRowNames(u) != R_NilValue)
1108
			GetRowNames(v) != R_NilValue)
1109
			SetRowNames(dn, duplicate(GetRowNames(u)));
1109
			SetRowNames(dn, duplicate(GetRowNames(v)));
1110
 
1110
 
1111
		    /* rbind() does this only  if(have_?names) .. : */
1111
		    /* rbind() does this only  if(have_?names) .. : */
1112
		    if (tnam != R_NilValue) {
1112
		    if (tnam != R_NilValue) {
1113
			for (i = 0; i < length(tnam); i++)
1113
			for (i = 0; i < length(tnam); i++)
1114
			    STRING(nam)[j++] = STRING(tnam)[i];
1114
			    STRING(nam)[j++] = STRING(tnam)[i];