[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