From: Matthias Clasen Date: Sat, 3 Sep 2011 03:36:03 +0000 (-0400) Subject: gdatetime: Fix locale-changing code X-Git-Tag: 2.29.90~48 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f091c6a99b1c9e23e8e60a9e5ef35290e0ab4853;p=platform%2Fupstream%2Fglib.git gdatetime: Fix locale-changing code As pointed out by Ryan Lortie, the code didn't actually ever switch back to the old locale. https://bugzilla.gnome.org/show_bug.cgi?id=658104 --- diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c index e752962..6747a96 100644 --- a/glib/tests/gdatetime.c +++ b/glib/tests/gdatetime.c @@ -849,7 +849,7 @@ GDateTime *__dt = g_date_time_new_local (2009, 10, 24, 0, 0, 0);\ static void test_modifiers (void) { - const gchar *oldlocale; + gchar *oldlocale; TEST_PRINTF_DATE (2009, 1, 1, "%d", "01"); TEST_PRINTF_DATE (2009, 1, 1, "%_d", " 1"); @@ -892,7 +892,8 @@ test_modifiers (void) TEST_PRINTF_TIME ( 1, 0, 0, "%-k", "1"); TEST_PRINTF_TIME ( 1, 0, 0, "%0k", "01"); - oldlocale = setlocale (LC_ALL, "fa_IR.UTF-8"); + oldlocale = g_strdup (setlocale (LC_ALL, NULL)); + setlocale (LC_ALL, "fa_IR.utf-8"); if (strstr (setlocale (LC_ALL, NULL), "fa_IR") != NULL) { TEST_PRINTF_TIME (23, 0, 0, "%OH", "\333\262\333\263"); @@ -910,6 +911,7 @@ test_modifiers (void) else g_test_message ("locale fa_IR not available, skipping O modifier tests"); setlocale (LC_ALL, oldlocale); + g_free (oldlocale); } static void