Thanks for the report and the examples - and they do not have to be that
verbose, it is enough to just define and use a command, e.g.
cat("\\newcommand{\\mac1}{MAC1:#1}\\mac1{}", file=f)
rd <- tools::parse_Rd(f)
Whenever you get an error message like "Value of SET_STRING_ELT() must
be a 'CHARSXP' not a 'NULL'", there is a bug (at least the error message
should be relevant/informative).
I am testing a patch that will allow empty arguments to macros (they
will expand to an empty string, like in LaTeX).
Best
Tomas
On 05/14/2018 11:23 PM, Georgi Boshnakov wrote:
Bug or feature?
I get the following error from parse_Rd() when a user Rd macro (including
system ones) is invoked with empty argument {},
eg \mymacro{}:
Error in tools::parse_Rd(fn) :
Value of SET_STRING_ELT() must be a 'CHARSXP' not a 'NULL'
A full example is further below with the system macro \CRANpkg{}. In this
example it doesn't make sense to use empty argument but the error is not
specific to this particular macro.
------
Georgi Boshnakov
Create an Rd file containing system macro \CRANpkg{bibtex}, parse_Rd() is ok:
=================
fn <- tempfile()
writeLines("\\name{dummyfun}
\\alias{dummyfun}
\\title{Dummy title}
\\description{Dummy description}
\\usage{
dummyfun(x, ...)
}
\\arguments{
\\item{x}{a value.}
\\item{\\dots}{further arguments.}
}
\\details{
\\CRANpkg{bibtex}
}
", fn)
tools::parse_Rd(fn)
...
\details{
\href{{https://CRAN.R-project.org/package=bibtex}{\pkg{bibtex}}}
}
================
With empty argument - \CRANpkg{} - Rd parser throws error. Of course it is
silly in this example but I have used it with other user defined macros where
it may make sense to have empty argument.
================
writeLines("\\name{dummyfun}
\\alias{dummyfun}
\\title{Dummy title}
\\description{Dummy description}
\\usage{
dummyfun(x, ...)
}
\\arguments{
\\item{x}{a value.}
\\item{\\dots}{further arguments.}
}
\\details{
\\CRANpkg{}
}
", fn)
tools::parse_Rd(fn)
Error in tools::parse_Rd(fn) :
Value of SET_STRING_ELT() must be a 'CHARSXP' not a 'NULL'
[[alternative HTML version deleted]]
______________________________________________
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