Fix totally broken LocaleSetter class in the test suite.
It was based on a completely erroneous assumption that setlocale() returns the locale that had been previously active when it actually returns the newly set locale. This fixes unit test failures in StringTestCase under OS X, as the locale wasn't correctly restored by DateTimeTestCase that used this class. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
a2ae66251c
commit
2416cd031b
1 changed files with 12 additions and 3 deletions
|
|
@ -132,11 +132,20 @@ extern bool IsAutomaticTest();
|
|||
class LocaleSetter
|
||||
{
|
||||
public:
|
||||
LocaleSetter(const char *loc) : m_locOld(setlocale(LC_ALL, loc)) { }
|
||||
~LocaleSetter() { setlocale(LC_ALL, m_locOld); }
|
||||
LocaleSetter(const char *loc)
|
||||
: m_locOld(wxStrdupA(setlocale(LC_ALL, NULL)))
|
||||
{
|
||||
setlocale(LC_ALL, loc);
|
||||
}
|
||||
|
||||
~LocaleSetter()
|
||||
{
|
||||
setlocale(LC_ALL, m_locOld);
|
||||
free(m_locOld);
|
||||
}
|
||||
|
||||
private:
|
||||
const char * const m_locOld;
|
||||
char * const m_locOld;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(LocaleSetter);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue