Skip to content

Error in formatDL(nm, txt, indent = max(nchar(nm, "w")) + 3)

5 messages · Spencer Graves, William Dunlap

#
Hello:


       A call to help(..., help_type='text') fails with "package='fda":


 > install.packages('fda')
 > help(package='fda', help_type='text')
Error in formatDL(nm, txt, indent = max(nchar(nm, "w")) + 3) :
   incorrect values of 'indent' and 'width'


       I have this wrapped inside "try" in PackageSum2{sos}, so it 
doesn't die, but it also doesn't give me the additional information I 
want from help(..., help_type='text')


       Is this a bug?
       Thanks,
       Spencer Graves

Using RStudio 1.0.136 with


 > sessionInfo()
R version 3.3.3 (2017-03-06)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: macOS Sierra 10.12.3

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets
[6] methods   base

loaded via a namespace (and not attached):
[1] tools_3.3.3
#
Hello:


       I tried "debug(help)" with the problem mentioned below.  It 
stopped with a call to "library", from which I generate the following 
simple replication of this error:


 > library(help = 'fda', character.only = TRUE)
Error in formatDL(nm, txt, indent = max(nchar(nm, "w")) + 3) :
   incorrect values of 'indent' and 'width'


       This was using R 3.3.3 inside RStudio on a Mac, as noted below.  
This same "library(help='fda', character.only=TRUE)" ran fine using R 
Console 3.2.1 under Windows 7.


       I also tried debug(library).  It died in line 298:


     for (i in which(file.exists(docFiles))) pkgInfo[[i]] <- 
readDocFile(docFiles[i])


       with i = 1 and docFiles[i] = 
"/Library/Frameworks/R.framework/Versions/3.3/Resources/library/fda/Meta/package.rds". 



       This looks like a bug to me.  I don't know if it's new since R 
3.2.1 or it works fine under Windows 7 but not a Mac.


       Thanks,
       Spencer Graves


*** NOTES:


       1.  When I tried "Q" to exit debug mode, I got, "Error retrieving 
help:  R code execution error."  This suggests a bug in "debug", which 
could be replicated by trying debug(help) with "help(package='fda', 
help_type='text')".  It does not want to exit from "help" using "Q".  
"c" also fails.


       2.  For sessionInfo(), see below.
On 2017-03-08 4:06 PM, Spencer Graves wrote:
#
This error can arise when getOption("width") is too small.  80 seems to be the
limit for me with R-3.3.2 on Windows.
Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Wed, Mar 8, 2017 at 10:28 PM, Spencer Graves
<spencer.graves at prodsyse.com> wrote:
#
It happens in the fda package because some of the headers are longer
than typical (e.g., "Repository/R-Forge/DateTimeStamp") and formatDL
dies if the indent argument is too large compared to the width argument.

It might be nice to change formatDL so it never gave such an error, but
did something reasonable when the 'indent' argument was too big.
Changing
   if (indent > width/2) stop("incorrect values of 'indent' and 'width'")
to
   indent <- min(indent, width/2)
seems reasonable to me.

Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Thu, Mar 9, 2017 at 7:28 AM, William Dunlap <wdunlap at tibco.com> wrote:
#
Hi, Bill et al.:
On 2017-03-09 9:58 AM, William Dunlap wrote:
Thanks.  That sounds like a useful patch to me.


       Per "www.r-project.org/bugs.html", I will forward this thread 
with your suggested patch to the maintainer for formatDL{base} = "R Core 
Team <R-core at r-project.org>".


       Spencer Graves


p.s.  Per your earlier email, I changed the code in PackageSum2{sos} to 
include the following before the first call to help{utils}:


   w0 <-options(width=80)
   on.exit(options(w0))


       This eliminated the specific error I reported but may not work 
with other packages with even longer headers.