From murdoch.duncan at gmail.com  Fri Sep  2 02:55:38 2011
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Thu, 01 Sep 2011 20:55:38 -0400
Subject: [Rd] "\088" is legal syntax?
In-Reply-To: <E66794E69CFDE04D9A70842786030B9304F703@PA-MBX04.na.tibco.com>
References: <E66794E69CFDE04D9A70842786030B9304EE3E@PA-MBX04.na.tibco.com>
	<4E60239B.8070105@gmail.com>
	<E66794E69CFDE04D9A70842786030B9304F703@PA-MBX04.na.tibco.com>
Message-ID: <4E60298A.2060100@gmail.com>

On 11-09-01 8:47 PM, William Dunlap wrote:
> The CRAN package svMisc misuses it, using "\8" instead of "\10" or "\b":
>   ./svMisc/R/progress.R:          backspaces<- paste(rep("\8", l3), collapse = "")
>
> I noticed it when S+ emitted a warning when parsing that file:
>    >  p<- parse("svMisc/R/progress.R")
>    Warning messages:
>      The initial backslash is ignored in \8 -- not a recognized escape sequence.
>            Use \\ to make a backslash in: parse("svMisc/R/progress.R")
> (S+ parses the "\8" as "8", as the warning obliquly implies.)
>
> I grepped through other CRAN sources for "\\0*8" and also found

I don't have the CRAN sources installed here so I can't check myself, 
but grepping for \\[0-7]*8 might find other instances.  The parser would 
accept an 8 in any position.

Duncan

>    ./mvbutils/R/mvbutils.R:  rep.percent<- '\008'
> S+ emits no warning for that but parses it as "", because it
> considers the octal escape to stop at the first non-octal digit.


> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
>
>> -----Original Message-----
>> From: Duncan Murdoch [mailto:murdoch.duncan at gmail.com]
>> Sent: Thursday, September 01, 2011 5:30 PM
>> To: William Dunlap
>> Cc: r-devel at r-project.org
>> Subject: Re: [Rd] "\088" is legal syntax?
>>
>> On 11-09-01 5:43 PM, William Dunlap wrote:
>>> Is it intentional that the digit 8 is allowed
>>> in octal escape sequences in character literals?
>>>
>>>     >   "\110" == "\088"
>>>     [1] TRUE
>>>     >   "\8" == "\b"
>>>     [1] TRUE
>>>
>>> 9's are rejected, so I'd expected 8's to be illegal as well.
>>
>> It is documented that way in the R-lang manual, but I imagine it's just
>> a thinko.  It's been like that since octal escapes were added in 1998.
>> I wonder how much will break if I fix it?
>>
>> Duncan Murdoch
>>
>>>
>>>     >   "\9"
>>>     Error: '\9' is an unrecognized escape in character string starting "\9"
>>>     >   "\091")
>>>     Error: embedded nul in string: '\091'
>>>
>>> Bill Dunlap
>>> Spotfire, TIBCO Software
>>> wdunlap tibco.com
>>>
>>>> sessionInfo()
>>> R version 2.13.1 (2011-07-08)
>>> Platform: x86_64-unknown-linux-gnu (64-bit)
>>>
>>> locale:
>>>    [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>>>    [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>>>    [5] LC_MONETARY=C              LC_MESSAGES=en_US.UTF-8
>>>    [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
>>>    [9] LC_ADDRESS=C               LC_TELEPHONE=C
>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>>>
>>> attached base packages:
>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] "\088" is legal syntax?
Duncan Murdoch