[Rd] directing print.packageInfo to a file

Gabor Grothendieck ggrothendieck at myway.com
Mon Jul 26 01:16:49 CEST 2004


There was a discussion on r-help of getting the output from 
print.packageInfo into a file.  Spencer and I have added a file=
argument to print.packageInfo for consideration in R.  Had this
been available it would have simplified the answer to that
thread.  If the file= argument is used then the packageInfo
information is sent to the file specified rather than displayed
using file.show .

print.packageInfo <- function (x, ..., file = NULL) 
{
    if (!inherits(x, "packageInfo")) 
        stop("wrong class")
    outFile <- if (is.null(file))
	tempfile("RpackageInfo")
    else
	file
    outConn <- file(outFile, open = "w")
    vignetteMsg <- paste("Further information is available in the following ", 
        "vignettes in directory ", sQuote(file.path(x$path, "doc")), 
        ":", sep = "")
    headers <- c("", "Description:\n\n", "Index:\n\n", paste(paste(strwrap
(vignetteMsg), 
        collapse = "\n"), "\n\n", sep = ""))
    footers <- c("\n", "\n", "\n", "")
    formatDocEntry <- function(entry) {
        if (is.list(entry) || is.matrix(entry)) 
            formatDL(entry, style = "list")
        else entry
    }
    for (i in which(!sapply(x$info, is.null))) {
        writeLines(headers[i], outConn, sep = "")
        writeLines(formatDocEntry(x$info[[i]]), outConn)
        writeLines(footers[i], outConn, sep = "")
    }
    close(outConn)
    if (is.null(file))
	    file.show(outFile, delete.file = TRUE, title = paste
("Documentation for package", 
		sQuote(x$name)))
    invisible(x)
}



More information about the R-devel mailing list