blob: 49a8fab50675695234eecd2d3b5abdee44e34d61 [file] [log] [blame]
% File src/library/utils/man/sourceutils.Rd
% Part of the R package, https://www.R-project.org
% Copyright 2011-2013 R Core Team
% Distributed under GPL 2 or later
\name{sourceutils}
\alias{getSrcFilename}
\alias{getSrcDirectory}
\alias{getSrcref}
\alias{getSrcLocation}
\title{
Source Reference Utilities
}
\description{
These functions extract information from source references.
}
\usage{
getSrcFilename(x, full.names = FALSE, unique = TRUE)
getSrcDirectory(x, unique = TRUE)
getSrcref(x)
getSrcLocation(x, which = c("line", "column", "byte", "parse"),
first = TRUE)
}
\arguments{
\item{x}{
An object (typically a function) containing source references.
}
\item{full.names}{
Whether to include the full path in the filename result.
}
\item{unique}{
Whether to list only unique filenames/directories.
}
\item{which}{
Which part of a source reference to extract. Can be abbreviated.
}
\item{first}{
Whether to show the first (or last) location of the object.
}
}
\details{
Each statement of a function will have its own source reference if the
\code{"keep.source"} option is \code{TRUE}. These functions retrieve
all of them.
The components are as follows:
\describe{
\item{line}{The line number where the object starts or ends.}
\item{column}{The column number where the object starts or ends.}
\item{byte}{As for \code{"column"}, but counting bytes, which may
differ in case of multibyte characters.}
\item{parse}{As for \code{"line"}, but this ignores \code{#line} directives.}
}
}
\value{
\code{getSrcFilename} and \code{getSrcDirectory} return character vectors
holding the filename/directory.
\code{getSrcref} returns a list of \code{"srcref"} objects or
\code{NULL} if there are none.
\code{getSrcLocation} returns an integer vector of the requested type
of locations.
}
\seealso{
\code{\link{srcref}}, \code{\link{getParseData}}
}
\examples{
fn <- function(x) {
x + 1 # A comment, kept as part of the source
}
# Show the temporary file directory
# where the example was saved
getSrcDirectory(fn)
getSrcLocation(fn, "line")
}
\keyword{ utilities }