[Fontconfig] fontconfig: Branch 'master'

Akira TAGOH tagoh at kemper.freedesktop.org
Thu Mar 15 03:39:20 UTC 2018


 fc-conflist/fc-conflist.c |    2 ++
 src/fccfg.c               |   22 ++--------------------
 2 files changed, 4 insertions(+), 20 deletions(-)

New commits:
commit 98eaef69af1350e459bf9c175476d3b772968874
Author: Akira TAGOH <akira at tagoh.org>
Date:   Thu Mar 15 12:17:52 2018 +0900

    Leave the locale setting to applications
    
    https://bugs.freedesktop.org/show_bug.cgi?id=105492

diff --git a/fc-conflist/fc-conflist.c b/fc-conflist/fc-conflist.c
index d02273b..5c40a0f 100644
--- a/fc-conflist/fc-conflist.c
+++ b/fc-conflist/fc-conflist.c
@@ -38,6 +38,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
@@ -102,6 +103,7 @@ main (int argc, char **argv)
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "Vh", longopts, NULL)) != -1)
 #else
diff --git a/src/fccfg.c b/src/fccfg.c
index e311f17..e35c451 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -26,7 +26,6 @@
 
 #include "fcint.h"
 #include <dirent.h>
-#include <locale.h>
 #include <sys/types.h>
 
 #if defined (_WIN32) && !defined (R_OK)
@@ -39,24 +38,7 @@ static FcConfig *
 FcConfigEnsure (void)
 {
     FcConfig	*config;
-    FcBool	is_locale_initialized;
-    static void *static_is_locale_initialized;
-retry_locale:
-    is_locale_initialized = (intptr_t) fc_atomic_ptr_get (&static_is_locale_initialized);
-    if (!is_locale_initialized)
-    {
-	char *loc;
-
-	is_locale_initialized = FcTrue;
-	if (!fc_atomic_ptr_cmpexch (&static_is_locale_initialized, NULL,
-				    (void *)(intptr_t) is_locale_initialized))
-	    goto retry_locale;
-
-	loc = setlocale (LC_ALL, NULL);
-	if (!loc || strcmp (loc, "C") == 0)
-	    setlocale (LC_ALL, "");
-    }
-retry_config:
+retry:
     config = fc_atomic_ptr_get (&_fcConfig);
     if (!config)
     {
@@ -64,7 +46,7 @@ retry_config:
 
 	if (!fc_atomic_ptr_cmpexch (&_fcConfig, NULL, config)) {
 	    FcConfigDestroy (config);
-	    goto retry_config;
+	    goto retry;
 	}
     }
     return config;


More information about the Fontconfig mailing list