fix semantically incorrect use of LC_GLOBAL_LOCALE
authorRich Felker <dalias@aerifal.cx>
Sun, 28 Jul 2013 07:41:01 +0000 (03:41 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 28 Jul 2013 07:41:01 +0000 (03:41 -0400)
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.

src/locale/langinfo.c
src/locale/strcoll.c
src/locale/strxfrm.c
src/locale/wcscoll.c
src/locale/wcsxfrm.c
src/time/strftime.c
src/time/wcsftime.c

index b4d53744ae13e887384c770325d48abb8f1bdc38..7bb56eede9f56d92320ae79a553c095a828e22a2 100644 (file)
@@ -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);
index 8b84b1e63d2971ed1f809a4161fc6da204cc2e80..39ea1123c620437d752ab003dd8bd9b9a1db5021 100644 (file)
@@ -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);
index 0ca9b0711b24e33c6a387686fe63732fd9e6c186..32c461939dd422b0e123580ce78974e669a843e5 100644 (file)
@@ -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);
index 95a4ca74e9b86ce1ac73018d0b318f92f9861ca0..20a60900e038658260ff91cecd615afa2b30ea8c 100644 (file)
@@ -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);
index f977f9e19a50bd1acd6b9be5361cb5135e090eb4..cb79c97e79efdde4b0394db68c90e210950470bb 100644 (file)
@@ -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);
index 96cb996de0b4f4a233435963241c284b8e8e1001..3f0ec3e3345df9c1c0d3c5e1df78295932b3b65e 100644 (file)
@@ -214,7 +214,7 @@ recu_strftime:
 
 size_t strftime(char *restrict s, size_t n, const char *restrict f, const struct tm *restrict tm)
 {
-       return __strftime_l(s, n, f, tm, LC_GLOBAL_LOCALE);
+       return __strftime_l(s, n, f, tm, 0);
 }
 
 weak_alias(__strftime_l, strftime_l);
index 7b631f5f74b3571e023532a37ab5564cf0b80644..469d0f4c4367dfde592310fe260fc9e690d6af78 100644 (file)
@@ -34,5 +34,5 @@ size_t __wcsftime_l(wchar_t *restrict wcs, size_t n, const wchar_t *restrict f,
 
 size_t wcsftime(wchar_t *restrict wcs, size_t n, const wchar_t *restrict f, const struct tm *restrict tm)
 {
-       return __wcsftime_l(wcs, n, f, tm, LC_GLOBAL_LOCALE);
+       return __wcsftime_l(wcs, n, f, tm, 0);
 }