fix a problem with setlocale() under Windows: with MSVC7 it sometimes returns garbage when passing "": use NULL instead (may need a fix also in wxLocale::IsAvailable)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -276,11 +276,14 @@ int wxToupper_l(const wxUniChar& c, const wxXLocale& loc)
|
|||||||
case !wxHAS_XLOCALE_SUPPORT...
|
case !wxHAS_XLOCALE_SUPPORT...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Note that this code is similar to (a portion of) wxLocale::IsAvailable code
|
||||||
|
*/
|
||||||
#define IMPLEMENT_STRTOX_L_START \
|
#define IMPLEMENT_STRTOX_L_START \
|
||||||
wxCHECK(loc.IsOk(), 0); \
|
wxCHECK(loc.IsOk(), 0); \
|
||||||
\
|
\
|
||||||
/* (Try to) temporary set the locale to 'C' */ \
|
/* (Try to) temporary set the locale to 'C' */ \
|
||||||
const char *oldLocale = wxSetlocale(LC_NUMERIC, ""); \
|
const char *oldLocale = wxSetlocale(LC_NUMERIC, NULL); \
|
||||||
const char *tmp = wxSetlocale(LC_NUMERIC, "C"); \
|
const char *tmp = wxSetlocale(LC_NUMERIC, "C"); \
|
||||||
if ( !tmp ) \
|
if ( !tmp ) \
|
||||||
{ \
|
{ \
|
||||||
@@ -289,9 +292,7 @@ int wxToupper_l(const wxUniChar& c, const wxXLocale& loc)
|
|||||||
errno = EINVAL; \
|
errno = EINVAL; \
|
||||||
/* signal an error (better than nothing) */ \
|
/* signal an error (better than nothing) */ \
|
||||||
return 0; \
|
return 0; \
|
||||||
} \
|
}
|
||||||
\
|
|
||||||
|
|
||||||
|
|
||||||
#define IMPLEMENT_STRTOX_L_END \
|
#define IMPLEMENT_STRTOX_L_END \
|
||||||
/* restore the original locale */ \
|
/* restore the original locale */ \
|
||||||
|
Reference in New Issue
Block a user