The R Project SVN R

Rev

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

Rev 27033 Rev 27063
Line 981... Line 981...
981
 
981
 
982
    /* Step 6: Fix up the formula by substituting for dot, which should be 
982
    /* Step 6: Fix up the formula by substituting for dot, which should be 
983
       the framenames joined by + */
983
       the framenames joined by + */
984
 
984
 
985
    if (haveDot && LENGTH(framenames)) {
985
    if (haveDot && LENGTH(framenames)) {
-
 
986
	PROTECT_INDEX ind;
986
	PROTECT(rhs = install(CHAR(STRING_ELT(framenames, 0))));
987
	PROTECT_WITH_INDEX(rhs = install(CHAR(STRING_ELT(framenames, 0))), 
-
 
988
			   &ind);
987
	for (i = 1; i < LENGTH(framenames); i++) {
989
	for (i = 1; i < LENGTH(framenames); i++) {
988
	    UNPROTECT(1);
-
 
989
	    PROTECT(rhs = lang3(plusSymbol, rhs, 
990
	    REPROTECT(rhs = lang3(plusSymbol, rhs, 
990
				install(CHAR(STRING_ELT(framenames, i)))));
991
				  install(CHAR(STRING_ELT(framenames, i)))),
-
 
992
		      ind);
991
	}
993
	}
992
	if (!isNull(CADDR(ans)))
994
	if (!isNull(CADDR(ans)))
993
	    SETCADDR(ans, ExpandDots(CADDR(ans), rhs));
995
	    SETCADDR(ans, ExpandDots(CADDR(ans), rhs));
994
	else
996
	else
995
	    SETCADR(ans, ExpandDots(CADR(ans), rhs));
997
	    SETCADR(ans, ExpandDots(CADR(ans), rhs));