[R-SIG-Mac] R.app stange behavior?

Philippe Grosjean phgrosjean at sciviews.org
Sat Dec 29 20:04:43 CET 2007


Simon and Brian,

Sorry, I forgot to tell about my system:

 > version
                _
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
version.string R version 2.6.1 (2007-11-26)

 > sessionInfo()
R version 2.6.1 (2007-11-26)
i386-apple-darwin8.10.1

locale:
C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

 > Sys.getenv("R_GUI_APP_VERSION")
R_GUI_APP_VERSION
            "1.22"

 > l10n_info()
$MBCS
[1] FALSE

$`UTF-8`
[1] FALSE

$`Latin-1`
[1] FALSE

I switch to French in the system preferences. R is restarted after this. 
Menus are in French. To get messages in French in the Console, I need to 
enter Sys.setenv(LANG = "fr")... Even changing this variable in a 
terminal before starting R does nothing better. I am a little bit lost...
Best,

Philippe

Simon Urbanek wrote:
> 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