[R] cat(), Rgui, and support for carriage return \r...
murdoch at stats.uwo.ca
Wed Mar 29 00:48:17 CEST 2006
On 3/28/2006 11:00 AM, Prof Brian Ripley wrote:
> Rgui now supports \r in the same way as rterm.
I notice that there's a slight change to the colour scheme: now the
prompt ">" is in foreground colour, rather than user colour. This might
make sense (it's printed by the system, after all), but it looks a
little strange at first.
> On Sun, 19 Mar 2006, Duncan Murdoch wrote:
>> On 3/18/2006 2:39 PM, Duncan Murdoch wrote:
>>> On 3/17/2006 9:44 AM, Jeffrey Racine wrote:
>>>> Hi, and thanks in advance for your time.
>>>> Background - I am working on a package and wish to have a routine's
>>>> progress reported. The routine can take some time, and I would like to
>>>> inform the user about the routine's progress. I have scoured the
>>>> archives but to no avail, so would like to solicit input from this list.
>>>> I am successfully using
>>>> cat("\rBootstrap replication ", i, " of ", boot.num,)
>>>> flush.console() # To flush stdout on windows systems
>>>> which works as expected on *NIX systems and using Rterm under windows.
>>>> However, under Rgui the carriage return \r is ignored, and I certainly
>>>> don't want to use the newline escape sequence \n. Under Rgui it appears
>>>> Bootstrap replication 1 of 399Bootstrap replication 2 of 399Bootstrap...
>>>> but I want it to function properly if at all possible.
>>>> My question is simply whether there is a portable way to implement this
>>>> so that it works regardless of the R platform the user may be working
>>>> Many thanks for any/all suggestions.
>>> I've just been looking at the source code for this. I think it will be
>>> relatively easy to make \r in Rgui do a destructive CR (i.e. it will
>>> return to the start of the line, but clear any existing characters).
>>> I'll play around a bit and then do that for R-devel.
>> Oops, this was a bad idea. I did commit the change for a while, but
>> have reverted it now.
>> It seems that the help system displays help pages by writing CR LF at
>> the end of each line; the CR is \r, and my change above caused it to
>> wipe out the line it had just written. The help pages ended up
>> completely blank.
>> I may look into supporting \r as a non-destructive CR, but that's
>> harder, because it means low-level changes to the console display.
>> Right now it only writes to the end of the text buffer; this would mean
>> it would sometimes write to a spot before the end. I don't think it
>> would be impossible to do, but it will take more time than I have right now.
>> Duncan Murdoch
>> R-help at stat.math.ethz.ch mailing list
>> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help