Yihui Xie
2009-Jun-20 14:18 UTC
[Rd] Special characters in Rd example section will cause errors
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: %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% \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
Gabor Grothendieck
2009-Jun-20 14:33 UTC
[Rd] Special characters in Rd example section will cause errors
I've noticed this as well. I recently had a % in an Rd file that caused me problems. On Sat, Jun 20, 2009 at 10:18 AM, Yihui Xie<xieyihui at gmail.com> 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: > > %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% > \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 > >
Duncan Murdoch
2009-Jun-20 23:49 UTC
[Rd] Special characters in Rd example section will cause errors
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