glib/tests/date.c: Fix the tests on non-English Windows
authorChun-wei Fan <fanchunwei@src.gnome.org>
Sat, 4 Jan 2014 02:52:15 +0000 (10:52 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 7 Jan 2014 05:35:16 +0000 (13:35 +0800)
The names of the month (and abbreviations) are specific to the Windows
system locale, so we need to use SetThreadLocale() to set the locale of
the running program to en-US so that it will parse "March" and "Sept" etc.
correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=719344

glib/tests/date.c

index 0d674c9..6239d51 100644 (file)
 #include <locale.h>
 #include <time.h>
 
+#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#endif
+
 static void
 test_basic (void)
 {
@@ -376,6 +381,9 @@ main (int argc, char** argv)
 
   g_setenv ("LANG", "en_US.utf-8", TRUE);
   setlocale (LC_ALL, "");
+#ifdef G_OS_WIN32
+  SetThreadLocale (MAKELCID (MAKELANGID (LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));
+#endif
 
   g_test_init (&argc, &argv, NULL);