diff options
Diffstat (limited to 'src/locale/__get_locale.c')
-rw-r--r-- | src/locale/__get_locale.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/locale/__get_locale.c b/src/locale/__get_locale.c index 94bb62a0..b795d0f0 100644 --- a/src/locale/__get_locale.c +++ b/src/locale/__get_locale.c @@ -5,8 +5,19 @@ This implementation only supports a single, global locale. A second implementation will be needed for POSIX.1-2008 per-thread locales. */ +#ifdef _POSIX_SOURCE +# define DEFAULT_LOCALE "POSIX" +#else +# define DEFAULT_LOCALE "C" +#endif + struct __locale_t * __get_locale(void) { static struct __locale_t l; + static int loaded = 0; + if (!loaded) { + loaded = 1; + __load_locale(&l, LC_ALL, DEFAULT_LOCALE); + } return &l; } |