# File src/library/utils/R/history.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/ loadhistory <- function(file = ".Rhistory") invisible(.External2(C_loadhistory, file)) savehistory <- function(file = ".Rhistory") invisible(.External2(C_savehistory, file)) history <- function(max.show = 25, reverse = FALSE, pattern, ...) { file1 <- tempfile("Rrawhist") savehistory(file1) rawhist <- readLines(file1) unlink(file1) if(!missing(pattern)) rawhist <- unique(grep(pattern, rawhist, value = TRUE, ...)) nlines <- length(rawhist) if(nlines) { inds <- max(1, nlines-max.show):nlines if(reverse) inds <- rev(inds) } else inds <- integer() file2 <- tempfile("hist") writeLines(rawhist[inds], file2) file.show(file2, title = "R History", delete.file = TRUE) } timestamp <- function(stamp = date(), prefix = "##------ ", suffix = " ------##", quiet = FALSE) { stamp <- paste0(prefix, stamp, suffix) .External2(C_addhistory, stamp) if (!quiet) cat(stamp, sep = "\n") invisible(stamp) }