summaryrefslogtreecommitdiff
path: root/src/locale/__get_locale.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/locale/__get_locale.c')
-rw-r--r--src/locale/__get_locale.c11
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;
}