From murdoch at stats.uwo.ca  Sun Jun 21 01:49:39 2009
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Sat, 20 Jun 2009 19:49:39 -0400
Subject: [Rd] Special characters in Rd example section will cause errors
In-Reply-To: <89b6b8c90906200718s77f94849lf26d882f13598552@mail.gmail.com>
References: <89b6b8c90906200718s77f94849lf26d882f13598552@mail.gmail.com>
Message-ID: <4A3D7593.1080406@stats.uwo.ca>

On 20/06/2009 10:18 AM, Yihui Xie wrote:
> Hi (Duncan?),
> 
> The other day I noticed some characters will cause errors in R CMD
> CHECK because of parse_Rd(), and AFAIK, these chars include '%', '{'
> and '}'. For example, note the comments in the example section:

This is documented in the reference on the parse_Rd man page.  Since 
yesterday, that document is slightly out of date for R-devel, but it is 
intended to be correct for 2.9.x.  If you notice any behaviour there 
that contradicts the documentation I'd consider it a bug, either in the 
behaviour or the docs.  I'd like to hear about both.  But I don't think 
what you say below contradicts the documented behaviour.

Duncan Murdoch

> 
> %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
> \name{testfun}
> \Rdversion{1.1}
> \alias{testfun}
> \title{
> A Test
> }
> \description{
> A test
> }
> \usage{
> testfun()
> }
> \value{
> NULL
> }
> \author{
> Yihui Xie
> }
> \examples{
> # special characters in comments
> # what if a bracket '{' here?
> }
> \keyword{ misc }
> %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
> 
> ## error occurs
>> tools:::parse_Rd('testfun.Rd')
> Error in tools:::parse_Rd("testfun.Rd") :
>   testfun.Rd:23:1: unexpected section header
> 23: }
> 24: \keyword
>     ^
> 
> If I remove the '{', the Rd file can be parsed successfully. When you
> put a code line with "%" in it, there will also be an error, e.g. you
> put this in the example section
> 
> sprintf("%s", letters[1])
> 
> and you'll get
> 
>> tools:::parse_Rd('testfun.Rd')
> Error in tools:::parse_Rd("testfun.Rd") :
>   Unexpected end of input (in " quoted string opened at testfun.Rd:23:10)
> In addition: Warning message:
> In tools:::parse_Rd("testfun.Rd") :
>   newline within quoted string at testfun.Rd:24
> 
> Rd_parse() will parse the Rd file incorrectly either.
> 
>> tools:::Rd_parse('testfun.Rd')
> $meta
> $meta$aliases
> [1] "testfun"
> 
> $meta$concepts
> character(0)
> 
> $meta$keywords
> [1] "misc"
> 
> $meta$doc_type
> character(0)
> 
> $meta$encoding
> character(0)
> 
> 
> $data
>                                              vals        tags
> 1                                         testfun        name
> 2                                             1.1   Rdversion
> 3                                      \nA Test\n       title
> 4                                      \nA test\n description
> 5                                   \ntestfun()\n       usage
> 6                                        \nNULL\n       value
> 7                                   \nYihui Xie\n      author
> 8 \n# special characters in comments\n# what if '    examples
> 
> $rest
>          examples
> "'? or ''\n\n}\n"
> 
> 
> Here is my session info:
> 
>> sessionInfo()
> R version 2.9.0 (2009-04-17)
> i386-pc-mingw32
> 
> locale:
> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
> States.1252;LC_MONETARY=English_United
> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.
> 1252
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>> R.version
>                _
> platform       i386-pc-mingw32
> arch           i386
> os             mingw32
> system         i386, mingw32
> status
> major          2
> minor          9.0
> year           2009
> month          04
> day            17
> svn rev        48333
> language       R
> version.string R version 2.9.0 (2009-04-17)
> 
> 
> Regards,
> Yihui
> --
> Yihui Xie <xieyihui at gmail.com>
> Phone: +86-(0)10-82509086 Fax: +86-(0)10-82509086
> Mobile: +86-15810805877
> Homepage: http://www.yihui.name
> School of Statistics, Room 1037, Mingde Main Building,
> Renmin University of China, Beijing, 100872, China
> 
> 
> ------------------------------------------------------------------------
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Special characters in Rd example section will cause errors
Duncan Murdoch