Is this necessary to avoid LC_CTYPE="C"? If so, I stopped that at C level yesterday (it was already disallowed when starting R).
On Tue, 23 May 2006, Ei-ji Nakama wrote: > It clash similarly in the Japanese locale. > > localeCP!= GetACP() . > It dies from msvcrt (mb*) the case where NULL is specified. > > diff -ruN R-2.3.0.orig/src/gnuwin32/graphapp/buttons.c > R-2.3.0/src/gnuwin32/graphapp/buttons.c > --- R-2.3.0.orig/src/gnuwin32/graphapp/buttons.c Mon Apr 10 07:20:00 > 2006 > +++ R-2.3.0/src/gnuwin32/graphapp/buttons.c Tue May 23 16:26:51 2006 > @@ -132,9 +132,16 @@ > > if(is_NT && (localeCP != GetACP())) { > wchar_t wkind[100], wc[1000]; > - mbstowcs(wkind, kind, 100); > - mbstowcs(wc, text, 1000); > - hwnd = CreateWindowW(wkind, wc, > + wchar_t *wkindp=wkind, *wcp=wc; > + if(kind) > + mbstowcs(wkindp, kind, 100); > + else > + wkindp=NULL; > + if(text) > + mbstowcs(wcp, text, 1000); > + else > + wcp=NULL; > + hwnd = CreateWindowW(wkindp, wcp, > (WS_CHILD | WS_VISIBLE) | style, > r.x, r.y, r.width, r.height, > current_window->handle, > diff -ruN R-2.3.0.orig/src/gnuwin32/graphapp/menus.c > R-2.3.0/src/gnuwin32/graphapp/menus.c > --- R-2.3.0.orig/src/gnuwin32/graphapp/menus.c Mon Apr 10 07:20:00 2006 > +++ R-2.3.0/src/gnuwin32/graphapp/menus.c Tue May 23 15:36:14 2006 > @@ -302,9 +302,12 @@ > BOOL myAppendMenu(HMENU h, UINT flags, UINT id, LPCTSTR name) > { > if(is_NT && (localeCP != GetACP())) { > - wchar_t wc[100]; > - mbstowcs(wc, name, 100); > - return AppendMenuW(h, flags, id, wc); > + wchar_t wc[100], *wcp=wc; > + if (name) > + mbstowcs(wcp, name, 100); > + else > + wcp=NULL; > + return AppendMenuW(h, flags, id, wcp); > } else > return AppendMenuA(h, flags, id, name); > } > diff -ruN R-2.3.0.orig/src/gnuwin32/graphapp/windows.c > R-2.3.0/src/gnuwin32/graphapp/windows.c > --- R-2.3.0.orig/src/gnuwin32/graphapp/windows.c Mon Apr 10 07:20:00 > 2006 > +++ R-2.3.0/src/gnuwin32/graphapp/windows.c Tue May 23 16:39:23 2006 > @@ -455,13 +455,21 @@ > > if(is_NT && (localeCP != GetACP())) { > wchar_t wkind[100], wc[1000]; > - mbstowcs(wkind, (flags & Workspace) ? work_class_name > - : win_class_name, 100); > - mbstowcs(wc, name, 1000); > + wchar_t *wkindp=wkind, *wcp=wc; > + if((flags & Workspace) ? work_class_name > + : win_class_name) > + mbstowcs(wkindp, (flags & Workspace) ? work_class_name > + : win_class_name, 100); > + else > + wkindp=NULL; > + if(name) > + mbstowcs(wcp, name, 1000); > + else > + wcp=NULL; > hwnd = CreateWindowExW( > ex_style, > - wkind, > - wc, win_style, > + wkindp, > + wcp, win_style, > r.x, r.y, r.width, r.height, > (HWND) ((flags & ChildWindow) ? > current_window->handle : 0), > > > 2006/5/23, Prof Brian Ripley <[EMAIL PROTECTED]>: >> 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, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: >>>> 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" >>>>> <[EMAIL PROTECTED]> >>>>> To: <[EMAIL PROTECTED]> >>>>> Cc: <[EMAIL PROTECTED]> >>>>> 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, [EMAIL PROTECTED] 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@r-project.org mailing list >>>>>>> https://stat.ethz.ch/mailman/listinfo/r-devel >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> Brian D. Ripley, [EMAIL PROTECTED] >>>>>> 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, [EMAIL PROTECTED] >>>> 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@r-project.org mailing list >>>> https://stat.ethz.ch/mailman/listinfo/r-devel >>>> >>> >>> >>> >> >> -- >> Brian D. Ripley, [EMAIL PROTECTED] >> 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, [EMAIL PROTECTED] 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@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel