[Rd] Sys.setlocale upsets windows graphics device (PR#8887)

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon May 22 18:14:06 CEST 2006


On Mon, 22 May 2006, Ei-ji Nakama wrote:

> If a return value of locale does not have a period, a function of libmingwex
> gives back NULL in strchr and refers to NULL pointer in atoi.
>
> But it will be right to fix mingw...
>
> --- locales.R.orig      Mon Apr 10 07:19:19 2006
> +++ locales.R   Mon May 22 22:55:21 2006
> @@ -10,6 +10,7 @@
> {
>     category <- match(category, c("LC_ALL", "LC_COLLATE", "LC_CTYPE",
>                                   "LC_MONETARY", "LC_NUMERIC", "LC_TIME"))
> +    if(locale == "C") locale = "English_United States.1252");
>     if(is.na(category)) stop("invalid 'category' argument")
>     .Internal(setlocale(category, locale))
> }

Unfortunately that does not affect e.g. 'Rgui LC_ALL=C' so a more 
comprehensive C-level fix would be needed.

I did wonder if mingwex was the problem, but in theory at least it knows 
about the C locale (cp = 0), and the crash was coming from MSVCRT.dll, in 
the conversion of an ASCII string to wchar.  Since it works in other 
Windows base locales it did seem specific to Thai (which is still a 
single-byte locale).


> 2006/5/22, ripley at stats.ox.ac.uk <ripley at stats.ox.ac.uk>:
>> On Mon, 22 May 2006, Edward wrote:
>>
>>> Hi,
>>> We tried it on 3 separate windows XP computers using version 2.3.0.
>>> The original locale is set for Thailand on all 3.
>>> So how do we fix it? Is there another patch?
>>
>> Don't try to do graphics in the C locale on your computer?
>>
>> I suspect this is a font problem in Windows, in that your fonts may be
>> specific to the Thai localization.  But without a means of reproducing
>> this, I can only guess.
>>
>> If you can set up a debugger (see the rw-FAQ), you may be able to give us
>> some additional clues as the where the crash is occuring.
>>
>>> And why does the crash not happen with earlier R versions (eg. 2.2.1) on the
>>> same computer?
>>
>> Because of the issue mentioned in the CHANGES file, the change to the C
>> locale was reverted by opening a graphics window.
>>
>>>
>>> ---
>>>> Sys.getlocale()
>>> [1]
>>> "LC_COLLATE=Thai_Thailand.874;LC_CTYPE=Thai_Thailand.874;LC_MONETARY=Thai_Thailand.874;LC_NUMERIC=C;LC_TIME=Thai_Thailand.874"
>>> ---
>>>
>>> Thanks
>>> Edward
>>>
>>> ----- Original Message ----- From: "Prof Brian Ripley"
>>> <ripley at stats.ox.ac.uk>
>>> To: <edward.m at psu.ac.th>
>>> Cc: <R-bugs at biostat.ku.dk>
>>> Sent: Monday, May 22, 2006 2:32 PM
>>> Subject: Re: [Rd] Sys.setlocale upsets windows graphics device (PR#8887)
>>>
>>>
>>>> Works perfectly for me.  There was a bug in 2.2.1, but it was fixed in
>>>> 2.2.1 patched (see CHANGES).
>>>>
>>>> What locale were you changing from?  (This might be a Windows problem
>>>> specific to your locale.)
>>>>
>>>> On Mon, 22 May 2006, edward.m at psu.ac.th wrote:
>>>>
>>>>> Full_Name: Edward McNeil
>>>>> Version: 2.3.0
>>>>> OS: Widows XP
>>>>> Submission from: (NULL) (203.170.234.5)
>>>>>
>>>>>
>>>>> Type the following:
>>>>>
>>>>>> Sys.setlocale("LC_ALL","C")
>>>>>> hist(1:10)
>>>>>
>>>>> CRASH
>>>>>
>>>>> ______________________________________________
>>>>> 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
>>>
>>>
>>
>> --
>> 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
>>
>> ______________________________________________
>> 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