Leave the locale setting to applications
https://bugs.freedesktop.org/show_bug.cgi?id=105492
This commit is contained in:
parent
fb7be6d605
commit
98eaef69af
|
@ -38,6 +38,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
#ifdef ENABLE_NLS
|
#ifdef ENABLE_NLS
|
||||||
#include <libintl.h>
|
#include <libintl.h>
|
||||||
|
@ -102,6 +103,7 @@ main (int argc, char **argv)
|
||||||
#if HAVE_GETOPT_LONG || HAVE_GETOPT
|
#if HAVE_GETOPT_LONG || HAVE_GETOPT
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
|
setlocale (LC_ALL, "");
|
||||||
#if HAVE_GETOPT_LONG
|
#if HAVE_GETOPT_LONG
|
||||||
while ((c = getopt_long (argc, argv, "Vh", longopts, NULL)) != -1)
|
while ((c = getopt_long (argc, argv, "Vh", longopts, NULL)) != -1)
|
||||||
#else
|
#else
|
||||||
|
|
22
src/fccfg.c
22
src/fccfg.c
|
@ -26,7 +26,6 @@
|
||||||
|
|
||||||
#include "fcint.h"
|
#include "fcint.h"
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <locale.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#if defined (_WIN32) && !defined (R_OK)
|
#if defined (_WIN32) && !defined (R_OK)
|
||||||
|
@ -39,24 +38,7 @@ static FcConfig *
|
||||||
FcConfigEnsure (void)
|
FcConfigEnsure (void)
|
||||||
{
|
{
|
||||||
FcConfig *config;
|
FcConfig *config;
|
||||||
FcBool is_locale_initialized;
|
retry:
|
||||||
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:
|
|
||||||
config = fc_atomic_ptr_get (&_fcConfig);
|
config = fc_atomic_ptr_get (&_fcConfig);
|
||||||
if (!config)
|
if (!config)
|
||||||
{
|
{
|
||||||
|
@ -64,7 +46,7 @@ retry_config:
|
||||||
|
|
||||||
if (!fc_atomic_ptr_cmpexch (&_fcConfig, NULL, config)) {
|
if (!fc_atomic_ptr_cmpexch (&_fcConfig, NULL, config)) {
|
||||||
FcConfigDestroy (config);
|
FcConfigDestroy (config);
|
||||||
goto retry_config;
|
goto retry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return config;
|
return config;
|
||||||
|
|
Loading…
Reference in New Issue