[Rd] capture.output(), truncated last output without \n (PR#10534)
phgrosjean at sciviews.org
phgrosjean at sciviews.org
Sat Dec 29 12:15:26 CET 2007
Full_Name: Philippe Grosjean
Version: 2.6.1
OS: MacOS X; Windows XP
Submission from: (NULL) (81.243.237.235)
Last output from capture.output() is truncated if it does not end with a
carriage return:
> capture.output(cat("text\n")) # Fine
[1] "text"
> capture.output(cat("text")) # Missing output!
character(0)
> capture.output({cat("text");1+1}) # Only last output is affected
[1] "text[1] 2"
Proposed patch: add a carriage return before exiting capture.output():
capture.output <-
function (..., file = NULL, append = FALSE) {
[...]
for (item in tmp) if (item$visible)
print(item$value)
}
cat("\n") ### ADD THIS!
rval
}
This changes the behavior of capture.output() a little bit, since it adds "" at
the end of regular outputs, but it solves the problem and it allows to detect if
last output line was ended by \n, or not.
Regards,
Philippe Grosjean
_
platform i386-apple-darwin8.10.1
arch i386
os darwin8.10.1
system i386, darwin8.10.1
status
major 2
minor 6.1
year 2007
month 11
day 26
svn rev 43537
language R
More information about the R-devel
mailing list