The R Project SVN R

Rev

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

Rev 63181 Rev 63223
Line 909... Line 909...
909
 
909
 
910
    /* split out ENVSXP for now */
910
    /* split out ENVSXP for now */
911
    if( TYPEOF(x) == ENVSXP ) {
911
    if( TYPEOF(x) == ENVSXP ) {
912
	if( nsubs != 1 || !isString(CAR(subs)) || length(CAR(subs)) != 1 )
912
	if( nsubs != 1 || !isString(CAR(subs)) || length(CAR(subs)) != 1 )
913
	    errorcall(call, _("wrong arguments for subsetting an environment"));
913
	    errorcall(call, _("wrong arguments for subsetting an environment"));
914
	ans = findVarInFrame(x, install(translateChar(STRING_ELT(CAR(subs), 0))));
914
	ans = findVarInFrame(x, installTrChar(STRING_ELT(CAR(subs), 0)));
915
	if( TYPEOF(ans) == PROMSXP ) {
915
	if( TYPEOF(ans) == PROMSXP ) {
916
	    PROTECT(ans);
916
	    PROTECT(ans);
917
	    ans = eval(ans, R_GlobalEnv);
917
	    ans = eval(ans, R_GlobalEnv);
918
	    UNPROTECT(1);
918
	    UNPROTECT(1);
919
	} else SET_NAMED(ans, 2);
919
	} else SET_NAMED(ans, 2);
Line 1217... Line 1217...
1217
	    return y;
1217
	    return y;
1218
	}
1218
	}
1219
	return R_NilValue;
1219
	return R_NilValue;
1220
    }
1220
    }
1221
    else if( isEnvironment(x) ){
1221
    else if( isEnvironment(x) ){
1222
	y = findVarInFrame(x, install(translateChar(input)));
1222
	y = findVarInFrame(x, installTrChar(input));
1223
	if( TYPEOF(y) == PROMSXP ) {
1223
	if( TYPEOF(y) == PROMSXP ) {
1224
	    PROTECT(y);
1224
	    PROTECT(y);
1225
	    y = eval(y, R_GlobalEnv);
1225
	    y = eval(y, R_GlobalEnv);
1226
	    UNPROTECT(1);
1226
	    UNPROTECT(1);
1227
	}
1227
	}