[Rd] (PR#10534 capture.output(), truncated last output without
ripley at stats.ox.ac.uk
ripley at stats.ox.ac.uk
Sat Dec 29 13:20:14 CET 2007
This only happens if 'file' is a text connection, and is the expected
behaviour in that case: you cannot capture an incomplete line to a text
connection.
There seems no reason to break the documented behaviour in other cases to
change something that you consider to a bug when file=NULL and the user
does not produce complete output. It would be possible to make use of
isIncomplete() to add a final newline only where needed to complete a
line. E.g. use
if(inherits(file, "textConnection") && isIncomplete(file)) cat("\n")
On Sat, 29 Dec 2007, phgrosjean at sciviews.org wrote:
> 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
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list