blob: 834afbff9c0469f27b2d2f6548e1084aa9b47598 [file] [log] [blame]
\name{packageName}
\alias{packageName}
\title{Find Package Associated with an Environment}
\description{
Many environments are associated with a package; this function
attempts to determine that package.
}
\usage{
packageName(env = parent.frame())
}
\arguments{
\item{env}{
The environment whose name we seek.
}
}
\details{
Environment \code{env} would be associated with a package if
\code{\link{topenv}(env)} is the namespace environment for that
package. Thus when \code{env} is the environment associated with
functions inside a package, or local functions defined within them,
\code{packageName} will normally return the package name.
Not all environments are associated with a package: for example,
the global environment, or the evaluation frames of functions defined
there. \code{packageName} will return \code{NULL} in these cases.
}
\value{
A length one character vector containing the name of the package,
or \code{NULL} if there is no name.
}
\seealso{
\code{\link[methods]{getPackageName}} is a more elaborate function
that can construct a name if none is found.
}
\examples{
packageName()
packageName(environment(mean))
}
\keyword{ utilities }