The R Project SVN R

Rev

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

Rev 4631 Rev 4742
Line 102... Line 102...
102
	warningcall(call, "editor ran but returned error status\n");
102
	warningcall(call, "editor ran but returned error status\n");
103
 
103
 
104
    if ((fp = R_fopen(filename, "r")) == NULL)
104
    if ((fp = R_fopen(filename, "r")) == NULL)
105
	errorcall(call, "unable to open file to read\n");
105
	errorcall(call, "unable to open file to read\n");
106
    R_ParseCnt = 0;
106
    R_ParseCnt = 0;
107
    x = R_ParseFile(fp, -1, &status);
107
    x = PROTECT(R_ParseFile(fp, -1, &status));
108
    if (status != PARSE_OK)
108
    if (status != PARSE_OK)
109
	errorcall(call, "An error occurred on line %d\n use a command like\n x <- vi()\n to recover\n", R_ParseError);
109
	errorcall(call, "An error occurred on line %d\n use a command like\n x <- vi()\n to recover\n", R_ParseError);
110
    else
110
    else
111
	fclose(fp);
111
	fclose(fp);
112
    R_ResetConsole();
112
    R_ResetConsole();
-
 
113
    {   /* can't just eval(x) here */
-
 
114
	int i, n;
-
 
115
	SEXP tmp;
-
 
116
 
-
 
117
	n = LENGTH(x);
-
 
118
	for (i = 0 ; i < n ; i++)
113
    x = eval(x, R_GlobalEnv);
119
	    tmp = eval(VECTOR(x)[i], R_GlobalEnv);
-
 
120
	x = tmp;
-
 
121
    }
114
    if (TYPEOF(x) == CLOSXP && envir != R_NilValue)
122
    if (TYPEOF(x) == CLOSXP && envir != R_NilValue)
115
	CLOENV(x) = envir;
123
	CLOENV(x) = envir;
116
    UNPROTECT(1);
124
    UNPROTECT(2);
117
    vmaxset(vmaxsave);
125
    vmaxset(vmaxsave);
118
    return (x);
126
    return (x);
119
}
127
}