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.dun...@gmail.com]
Sent: Thursday, September 01, 2011 5:30 PM
To: William Dunlap
Cc: r-devel@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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to