localecharset: make locale_charset thread-safe on Mac OS X
authorDaiki Ueno <ueno@gnu.org>
Sat, 20 Jul 2013 14:03:38 +0000 (07:03 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 20 Jul 2013 14:04:07 +0000 (07:04 -0700)
* lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
instead of MB_CUR_MAX.

ChangeLog
lib/localcharset.c

index 09a63b5..9abfb4c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,10 @@
-2013-07-08  Daiki Ueno  <ueno@gnu.org>
+2013-07-20  Daiki Ueno  <ueno@gnu.org>
+
+       localecharset: make locale_charset thread-safe on Mac OS X
+       * lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
+       instead of MB_CUR_MAX.
+
+2013-07-20  Daiki Ueno  <ueno@gnu.org>
 
        gettext: update to version 0.18.3
        * m4/intl.m4, m4/po.m4: Update from gettext-0.18.3.  In particular,
index 6b0153e..bfd9a03 100644 (file)
 # include <os2.h>
 #endif
 
+/* For MB_CUR_MAX_L */
+#if defined DARWIN7
+# include <xlocale.h>
+#endif
+
 #if ENABLE_RELOCATABLE
 # include "relocatable.h"
 #else
@@ -545,7 +550,7 @@ locale_charset (void)
 #ifdef DARWIN7
   /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8"
      (the default codeset) does not work when MB_CUR_MAX is 1.  */
-  if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX <= 1)
+  if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1)
     codeset = "ASCII";
 #endif