From bill at insightful.com  Thu May 22 23:52:56 2008
From: bill at insightful.com (Bill Dunlap)
Date: Thu, 22 May 2008 14:52:56 -0700 (PDT)
Subject: [Rd] bug in R 2.7.0 (PR#11497)
In-Reply-To: <Pine.GSO.4.56.0805221257050.15333@devsun3201.insightful.com>
References: <20080522074029.DA2FE2834154@mail.pubhealth.ku.dk>
	<48353DBE.6010004@biostat.ku.dk>
	<Pine.GSO.4.56.0805221257050.15333@devsun3201.insightful.com>
Message-ID: <Pine.GSO.4.56.0805221449060.15333@devsun3201.insightful.com>

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) {



[Rd] bug in R 2.7.0 (PR#11497)
Bill Dunlap