patchCode {R.utils} | R Documentation

## Patches installed and loaded packages and more

### Description

Patches installed and loaded packages and more.

### Usage

    ## Default S3 method:
    patchCode(paths=NULL, recursive=TRUE, suppressWarnings=TRUE,
      knownExtensions=c("R", "r", "S", "s"), verbose=FALSE, ...)

### Arguments

`paths` | The path to the directory (and subdirectories) which contains source code that will patch loaded packages. If `NULL`, the patch path is given by the option `R_PATCHES`, If the latter is not set, the system environment with the same name is used. If neither is given, then `~/R-patches/` is used.
`recursive` | If `TRUE`, source code in subdirectories will also get loaded.
`suppressWarnings` | If `TRUE`, `warning`s will be suppressed, otherwise not.
`knownExtensions` | A `character` `vector` of filename extensions used to identify source code files. All other files are ignored.
`verbose` | If `TRUE`, extra information is printed while patching, otherwise not.
`...` | Not used.

### Details

The method will look for source code files (recursively or not) that match known filename extensions. Each found source code file is then `source`()d.

If the search is recursive, subdirectories are entered if and only if either (1) the name of the subdirectory is the same as a loaded (and installed) package, or (2) if there is no installed package with that name. The latter allows common code to be organized in directories although it is still not assigned to packages.

Each of the directories given by argument `paths` will be processed one by one. This makes it possible to have more than one file tree containing patches.

To set an options, see `options`(). To set a system environment, see `Sys.setenv`(). The character `;` is interpreted as a separator. Due to incompatibility with Windows pathnames, `:` is not a valid separator.

### Value

Returns (invisibly) the number of files sourced.

### Author(s)

Henrik Bengtsson

### See Also

`source`(). `library`().

### Examples

    ## Not run:
      # Patch all source code files in the current directory
      patchCode(".")

      # Patch all source code files in R_PATCHES
      options("R_PATCHES"="~/R-patches/")
      # alternatively, Sys.setenv("R_PATCHES"="~/R-patches/")
      patchCode()

    ## End(Not run)

[Package R.utils version 2.6.0 Index]