path: root/src/locale
diff options
authorRich Felker <>2013-07-28 03:41:01 -0400
committerRich Felker <>2013-07-28 03:41:01 -0400
commit1ae4bc42808111d6b3f50c063de102f162051986 (patch)
treebed1400ccc266c4f86c9960e45210da58530b5c8 /src/locale
parentf44e239f9f36c4be049f98d6a3d33644168e40a7 (diff)
fix semantically incorrect use of LC_GLOBAL_LOCALE
LC_GLOBAL_LOCALE refers to the global locale, controlled by setlocale, not the thread-local locale in effect which these functions should be using. neither LC_GLOBAL_LOCALE nor 0 has an argument to the *_l functions has behavior defined by the standard, but 0 is a more logical choice for requesting the callee to lookup the current locale. in the future I may move the current locale lookup the the caller (the non-_l-suffixed wrapper). at this point, all of the locale logic is dummied out, so no harm was done, but it should at least avoid misleading usage.
Diffstat (limited to 'src/locale')
5 files changed, 5 insertions, 5 deletions
diff --git a/src/locale/langinfo.c b/src/locale/langinfo.c
index b4d53744..7bb56eed 100644
--- a/src/locale/langinfo.c
+++ b/src/locale/langinfo.c
@@ -60,7 +60,7 @@ char *__nl_langinfo_l(nl_item item, locale_t loc)
char *__nl_langinfo(nl_item item)
- return __nl_langinfo_l(item, LC_GLOBAL_LOCALE);
+ return __nl_langinfo_l(item, 0);
weak_alias(__nl_langinfo, nl_langinfo);
diff --git a/src/locale/strcoll.c b/src/locale/strcoll.c
index 8b84b1e6..39ea1123 100644
--- a/src/locale/strcoll.c
+++ b/src/locale/strcoll.c
@@ -9,7 +9,7 @@ int __strcoll_l(const char *l, const char *r, locale_t loc)
int strcoll(const char *l, const char *r)
- return __strcoll_l(l, r, LC_GLOBAL_LOCALE);
+ return __strcoll_l(l, r, 0);
weak_alias(__strcoll_l, strcoll_l);
diff --git a/src/locale/strxfrm.c b/src/locale/strxfrm.c
index 0ca9b071..32c46193 100644
--- a/src/locale/strxfrm.c
+++ b/src/locale/strxfrm.c
@@ -12,7 +12,7 @@ size_t __strxfrm_l(char *restrict dest, const char *restrict src, size_t n, loca
size_t strxfrm(char *restrict dest, const char *restrict src, size_t n)
- return __strxfrm_l(dest, src, n, LC_GLOBAL_LOCALE);
+ return __strxfrm_l(dest, src, n, 0);
weak_alias(__strxfrm_l, strxfrm_l);
diff --git a/src/locale/wcscoll.c b/src/locale/wcscoll.c
index 95a4ca74..20a60900 100644
--- a/src/locale/wcscoll.c
+++ b/src/locale/wcscoll.c
@@ -10,7 +10,7 @@ int __wcscoll_l(const wchar_t *l, const wchar_t *r, locale_t locale)
int wcscoll(const wchar_t *l, const wchar_t *r)
- return __wcscoll_l(l, r, LC_GLOBAL_LOCALE);
+ return __wcscoll_l(l, r, 0);
weak_alias(__wcscoll_l, wcscoll_l);
diff --git a/src/locale/wcsxfrm.c b/src/locale/wcsxfrm.c
index f977f9e1..cb79c97e 100644
--- a/src/locale/wcsxfrm.c
+++ b/src/locale/wcsxfrm.c
@@ -15,7 +15,7 @@ size_t __wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n
size_t wcsxfrm(wchar_t *restrict dest, const wchar_t *restrict src, size_t n)
- return __wcsxfrm_l(dest, src, n, LC_GLOBAL_LOCALE);
+ return __wcsxfrm_l(dest, src, n, 0);
weak_alias(__wcsxfrm_l, wcsxfrm_l);