Re: [Rd] user macros with multi-line arguments in Rd (was Re: Rd parser throws error for user macros invoked with empty argument)

2018-06-04 Thread Tomas Kalibera

Now in R-devel,

Best,
Tomas

On 06/01/2018 11:33 AM, Tomas Kalibera wrote:
Thanks for the report, I am testing a patch that will allow multi-line 
arguments to user macros.


Best
Tomas

On 05/25/2018 04:45 PM, Georgi Boshnakov wrote:
While on the topic of Rd macro arguments, it seems that  if a 
multiline argument is supplied, the lines after the first are 
silently ignored:


f <- tempfile()
mac6 <- "\\newcommand{\\mac6}{mac6: #1}"

cat(mac6, "\\mac6{2*3
2+2
sin(pi)
}\n", file = f)
rd <- tools::parse_Rd(f)


rd

  mac6: 2*3

---

Georgi Boshnakov


-Original Message-
From: Tomas Kalibera [mailto:tomas.kalib...@gmail.com]
Sent: 25 May 2018 10:05
To: Georgi Boshnakov; r-devel@r-project.org
Subject: Re: [Rd] Rd parser throws error for user macros invoked with 
empty argument


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


[Rd] user macros with multi-line arguments in Rd (was Re: Rd parser throws error for user macros invoked with empty argument)

2018-06-01 Thread Tomas Kalibera
Thanks for the report, I am testing a patch that will allow multi-line 
arguments to user macros.


Best
Tomas

On 05/25/2018 04:45 PM, Georgi Boshnakov wrote:

While on the topic of Rd macro arguments, it seems that  if a multiline 
argument is supplied, the lines after the first are silently ignored:

f <- tempfile()
mac6 <- "\\newcommand{\\mac6}{mac6: #1}"

cat(mac6, "\\mac6{2*3
2+2
sin(pi)
}\n", file = f)
rd <- tools::parse_Rd(f)


rd

  mac6: 2*3

---

Georgi Boshnakov


-Original Message-
From: Tomas Kalibera [mailto:tomas.kalib...@gmail.com]
Sent: 25 May 2018 10:05
To: Georgi Boshnakov; r-devel@r-project.org
Subject: Re: [Rd] Rd parser throws error for user macros invoked with empty 
argument

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