R: Non-destructively construct a .Last function to be executed...

lastAdd {gtools} | R Documentation

## Non-destructively construct a .Last function to be executed when R exits.

### Description

Non-destructively construct a `.Last` function to be executed when R exits.

### Usage

    lastAdd(fun)

### Arguments

`fun` | Function to be called.

### Details

`lastAdd` constructs a new function which can be used to replace the exising definition of `.Last`, which will be executed when R terminates normally.

If a `.Last` function already exists in the global environment, the original definition is stored in a private environment, and the new function is defined to call the function `fun` and then to call the previous (stored) definition of `.Last`.

If no `.Last` function exists in the global environment, `lastAdd` simply returns the function `fun`.

### Value

A new function to be used for `.Last`.

### Note

This function replaces the (now defunct) `addLast` function.

### Author(s)

Gregory R. Warnes greg@warnes.net

### See Also

`.Last`

### Examples

    ## Print a couple of cute messages when R exits.
    helloWorld <- function() cat("\nHello World!\n")
    byeWorld <- function() cat("\nGoodbye World!\n")

    .Last <- lastAdd(byeWorld)
    .Last <- lastAdd(helloWorld)

    ## Not run:
    q("no")

    ## Should yield:
    ##
    ##   Save workspace image? [y/n/c]: n
    ##
    ##   Hello World!
    ##
    ##   Goodbye World!
    ##
    ##   Process R finished at Tue Nov 22 10:28:55 2005

    ## End(Not run)

    ## Unix-flavour example: send Rplots.ps to printer on exit.
    myLast <- function()
    {
      cat("Now sending PostScript graphics to the printer:\n")
      system("lpr Rplots.ps")
      cat("bye bye...\n")
    }
    .Last <- lastAdd(myLast)

    ## Not run:
    quit("yes")

    ## Should yield:
    ##
    ##  Now sending PostScript graphics to the printer:
    ##  lpr: job 1341 queued
    ##  bye bye...
    ##
    ##   Process R finished at Tue Nov 22 10:28:55 2005

    ## End(Not run)

[Package gtools version 3.5.0 Index]