]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix problems with setting system-time-locale on MS-Windows
authorEli Zaretskii <eliz@gnu.org>
Sat, 21 Mar 2015 15:44:00 +0000 (17:44 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 21 Mar 2015 15:44:00 +0000 (17:44 +0200)
 src/emacs.c (synchronize_locale) [WINDOWSNT]: Ignore 'category' and
 always use LC_ALL instead.  Fixes problems with setting
 system-time-locale to something non-default.

src/ChangeLog
src/emacs.c

index bdec3c9cde14a6fb88831afed693b153a1f74efb..5aa248e91b923ba81ee1249859a4accb728e68aa 100644 (file)
@@ -1,3 +1,9 @@
+2015-03-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * emacs.c (synchronize_locale) [WINDOWSNT]: Ignore 'category' and
+       always use LC_ALL instead.  Fixes problems with setting
+       system-time-locale to something non-default.
+
 2015-03-18  Glenn Morris  <rgm@gnu.org>
 
        * frame.h (x_set_bitmap_icon): Don't set the icon if icon-type is
index d318fd4649a0b0e3c2d41b8f4734a57069cb4bb8..70db900246a93a2194541e323b7b03c041e02ab1 100644 (file)
@@ -2152,6 +2152,13 @@ synchronize_locale (int category, Lisp_Object *plocale, Lisp_Object desired_loca
 {
   if (! EQ (*plocale, desired_locale))
     {
+#ifdef WINDOWSNT
+      /* Changing categories like LC_TIME usually requires to specify
+        an encoding suitable for the new locale, but MS-Windows's
+        'setlocale' will only switch the encoding when LC_ALL is
+        specified.  So we ignore CATEGORY and use LC_ALL instead.  */
+      category = LC_ALL;
+#endif
       *plocale = desired_locale;
       setlocale (category, (STRINGP (desired_locale)
                            ? SSDATA (desired_locale)