| # File src/library/utils/R/page.R |
| # Part of the R package, https://www.R-project.org |
| # |
| # Copyright (C) 1995-2012 The R Core Team |
| # |
| # This program is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 2 of the License, or |
| # (at your option) any later version. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # A copy of the GNU General Public License is available at |
| # https://www.R-project.org/Licenses/ |
| |
| page <- function(x, method = c("dput", "print"), ...) |
| { |
| ## local functions to parcel out '...' |
| local.file.show <- function(file, title = subx, delete.file = TRUE, |
| pager = getOption("pager"), ...) |
| file.show(file, title = title, delete.file = delete.file, pager = pager) |
| local.dput <- function(x, file, title, delete.file, pager, ...) |
| dput(x, file, ...) |
| local.print <- function(x, title, delete.file, pager, ...) |
| print(x, ...) |
| |
| if(is.character(x) && length(x) == 1L) { |
| subx <- x |
| parent <- parent.frame() |
| if(exists(subx, envir = parent)) # inherits=TRUE is default |
| x <- get(subx, envir = parent) |
| else |
| stop(gettextf("no object named '%s' to show", x), domain = NA) |
| } else { |
| subx <- deparse(substitute(x)) |
| } |
| file <- tempfile("Rpage.") |
| if(match.arg(method) == "dput") |
| local.dput(x, file, ...) |
| else { |
| sink(file) |
| local.print(x, ...) |
| sink() |
| } |
| local.file.show(file, ...) |
| } |