blob: ba77372160aedc808a934a7afdd7bd295bcae515 [file] [log] [blame]
% File src/library/grDevices/man/check.options.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later
\name{check.options}
\alias{check.options}
\title{Set Options with Consistency Checks}
\usage{
check.options(new, name.opt, reset = FALSE, assign.opt = FALSE,
envir = .GlobalEnv,
check.attributes = c("mode", "length"),
override.check = FALSE)
}
\description{
Utility function for setting options with some consistency checks.
The \code{\link{attributes}} of the new settings in \code{new} are
checked for consistency with the \emph{model} (often default)
list in \code{name.opt}.
}
\arguments{
\item{new}{a \emph{named} list}
\item{name.opt}{character with the name of \R object containing the
default list.}
\item{reset}{logical; if \code{TRUE}, reset the options from
\code{name.opt}. If there is more than one \R object with name
\code{name.opt}, remove the first one in the \code{\link{search}()} path.}
\item{assign.opt}{logical; if \code{TRUE}, assign the \ldots}
\item{envir}{the \code{\link{environment}} used for \code{\link{get}}
and \code{\link{assign}}.}
\item{check.attributes}{character containing the attributes which
\code{check.options} should check.}
\item{override.check}{logical vector of length \code{length(new)} (or 1
which entails recycling).
For those \code{new[i]} where \code{override.check[i] == TRUE}, the
checks are overridden and the changes made anyway.}
}
\note{
Option \code{"names"} is exempt from all the checks or warnings, as in
the application it can be \code{NULL} or a variable-length character
vector.
}
%% Source in ../R/postscript.R
\value{
A list of components with the same names as the one called
\code{name.opt}.
The values of the components are changed from the \code{new} list,
as long as these pass the checks (when these are not overridden
according to \code{override.check}).
}
\author{Martin Maechler}
\seealso{
\code{\link{ps.options}} and \code{\link{pdf.options}},
which use \code{check.options}.
}
%
\examples{
(L1 <- list(a = 1:3, b = pi, ch = "CH"))
check.options(list(a = 0:2), name.opt = "L1")
check.options(NULL, reset = TRUE, name.opt = "L1")
}
\keyword{utilities}
\keyword{programming}