[Rd] bug in R 2.7.0 (PR#11497)
Bill Dunlap
bill at insightful.com
Thu May 22 23:52:56 CEST 2008
On Thu, 22 May 2008, Bill Dunlap wrote:
> Also, if your input starts with certain errors, parse returns
> the stuff after the error:
> > parse()
> ?err//one
> expression(one)
>
>
> After the attached change we get
>
> > parse()
> ?one
> expression(one)
> > parse(n=2)
> ?one;two;three
> expression(one, two)
> > parse()
> ?err//one
> Error in parse() : unexpected '/' in "err//"
>
> Index: gram.y
> ===================================================================
> --- gram.y (revision 45762)
> +++ gram.y (working copy)
> @@ -1389,8 +1389,6 @@
> if (c == ';' || c == '\n') break;
> }
>
> - rval = R_Parse1Buffer(buffer, 1, status);
> -
> /* Was a call to R_Parse1Buffer, but we don't want to reset xxlineno and xxcolno */
> ParseInit();
> ParseContextInit();
The bug arose 2008-02-14, revision 44472, src/main/gram.y,
where it looks like it was intended that the call to
R_Parse1Buffer be replaced by most of the contents of
R_Parse1Buffer, but the the call itself was not removed
(the comment says it was). My change makes the comment
true.
@@ -1400,6 +1406,12 @@
rval = R_Parse1Buffer(buffer, 1, status);
+ /* Was a call to R_Parse1Buffer, but we don't want to reset xxlineno and x
xcolno */
+ ParseInit();
+ ParseContextInit();
+ R_Parse1(status);
+ rval = R_CurrentExpr;
+
switch(*status) {
More information about the R-devel
mailing list