| % File src/library/base/man/pushBack.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2014 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{pushBack} |
| \alias{pushBack} |
| \alias{pushBackLength} |
| \alias{clearPushBack} |
| \title{Push Text Back on to a Connection} |
| \description{ |
| Functions to push back text lines onto a \link{connection}, and to enquire |
| how many lines are currently pushed back. |
| } |
| \usage{ |
| pushBack(data, connection, newLine = TRUE, |
| encoding = c("", "bytes", "UTF-8")) |
| pushBackLength(connection) |
| clearPushBack(connection) |
| } |
| \arguments{ |
| \item{data}{a character vector.} |
| \item{connection}{A \link{connection}.} |
| \item{newLine}{logical. If true, a newline is appended to each string |
| pushed back.} |
| \item{encoding}{character string, partially matched. See details.} |
| } |
| \details{ |
| Several character strings can be pushed back on one or more occasions. |
| The occasions form a stack, so the first line to be retrieved will be |
| the first string from the last call to \code{pushBack}. Lines which |
| are pushed back are read prior to the normal input from the |
| connection, by the normal text-reading functions such as |
| \code{\link{readLines}} and \code{\link{scan}}. |
| |
| Pushback is only allowed for readable connections in text mode. |
| |
| Not all uses of connections respect pushbacks, in particular the input |
| connection is still wired directly, so for example parsing |
| commands from the console and \code{\link{scan}("")} ignore pushbacks on |
| \code{\link{stdin}}. |
| |
| When character strings with a marked encoding (see |
| \code{\link{Encoding}}) are pushed back they are converted to the |
| current encoding if \code{encoding = ""}. This may involve |
| representing characters as \samp{<U+xxxx>} if they cannot be |
| converted. They will be converted to UTF-8 if \code{encoding = |
| "UTF-8"} or left as-is if \code{encoding = "bytes"}. |
| } |
| \value{ |
| \code{pushBack} and \code{clearPushBack()} return nothing, invisibly. |
| |
| \code{pushBackLength} returns the number of lines currently pushed back. |
| } |
| \seealso{\code{\link{connections}}, \code{\link{readLines}}.} |
| |
| \examples{ |
| zz <- textConnection(LETTERS) |
| readLines(zz, 2) |
| pushBack(c("aa", "bb"), zz) |
| pushBackLength(zz) |
| readLines(zz, 1) |
| pushBackLength(zz) |
| readLines(zz, 1) |
| readLines(zz, 1) |
| close(zz) |
| } |
| \keyword{connection} |