Thank you, Brian. Prof Brian Ripley wrote: > 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.
Well, in ?textConnection, Details section, one can read: "Closing the connection will output the final line, complete or not." > 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") This is fine, except one cannot detect when the last line was complete or not in capture.output(). I suggest adding an attribute complete = TRUE/FALSE to the result returned by capture.output(), or any other mean to return this information. Best, Philippe Grosjean > > On Sat, 29 Dec 2007, [EMAIL PROTECTED] 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@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel