[R-SIG-Mac] R.app stange behavior?
Simon Urbanek
simon.urbanek at r-project.org
Sat Dec 29 15:35:41 CET 2007
Philippe,
On Dec 29, 2007, at 7:17 AM, Philippe Grosjean wrote:
> I have a couple of questions regarding the way R.app works:
>
> 1) R.app forces \n at the end of output:
>
>> cat("some text")
> some text
>>
>
> While on any other R console I have tested (including R in a
> terminal on a Mac), it is not the case:
>> cat("some text")
> some text>
>
Although your tests are right, your explanation is not. The GUI
doesn't force \n in general, try:
> cat("foo"); cat("bar")
foobar
All it does is to make sure that a prompt is printed on a new line (to
avoid prompt printed in the middle of some output). It does not affect
output in functions, scripts etc. (hence I think the following is
irrelevant).
> This is a problem for two reasons: (1) Mac users may forgot to add
> \n when using cat() and it would produce weird results elsewhere,
> and (2) it is sometimes useful to be able to write something before
> the prompt, or to write text without \n (see progress() in svMisc
> package, for an example of use)
>
>
> 2) R.app does not interpret \a and \b. \a should output a sound
> ('bip') and is used in alarm() function that does not work in R.app,
> and \b is backspace and is supposed to erase previous character.
> Consequently:
>
>> cat("abc\bd\n")
> abcd
>>
>
> which is wrong, or at least, different from the behavior on all
> other R consoles I have used which gives:
>
>> cat("abc\bd\n")
> abd
>>
>
The interpretation of all those codes is terminal-specific and for now
the R.app chooses to not interpret them (however, they are preserved,
try pasting the output in a terminal that interprets them).
As a side note, one specific issue is that of \r which seems to be
handy at times to report progress (although not portably).
Historically, Macs used \r to denote end of line in files and input,
therefore we have to interpret it as what you would expect from \n for
compatibility. With \r\n as the Windows end of line sequence being
also treated as \n for compatibility this explains the current
behavior in the GUI. ("\r", "\n", "\r\n" are equivalent, "\r\r" and "\n
\r" ares equivalent to "\n\n").
We may change the behavior in the future as the compatibility may not
be as important anymore. As of the other codes, I'm not quite sure
it's worth the hassle, but it could be done.
> 3) Despite reading Mac-FAQ, I cannot figure out how to print French
> messages correctly. I got something like:
>
>> nonexistingvar
> Erreur : objet "nonexistingvar" non trouv'e
>>
>
> This is the same on the terminal. Under Windows (RGui), I got:
>
>> nonexistingvar
> Erreur : objet "nonexistingvar" non trouvé
>>
>
> How can I fix this? (I am the maintainer of R French translation,
> and it uses 'charset=ISO-8859-1').
>
You'll have to tell us more about your settings - at least
sessionInfo(), possibly Sys.getenv("R_GUI_APP_VERSION") and any other
changes you made to your preferences manually. After selecting French
language and French settings in the system preferences, I get correctly:
> nonexistingvar
Erreur : objet "nonexistingvar" non trouvé
locale:
fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8
Cheers,
Simon
More information about the R-SIG-Mac
mailing list