From 4c48501ee2a022a0dd207a2db4d346a00f9927a1 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 2 Jul 2014 21:46:41 -0400 Subject: [PATCH] properly pass current locale to *_l functions when used internally this change is presently non-functional since the callees do not yet use their locale argument for anything. --- src/locale/langinfo.c | 3 ++- src/locale/strcoll.c | 3 ++- src/locale/strfmon.c | 3 ++- src/locale/strxfrm.c | 3 ++- src/locale/wcscoll.c | 3 ++- src/locale/wcsxfrm.c | 3 ++- src/time/strftime.c | 3 ++- src/time/wcsftime.c | 3 ++- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/locale/langinfo.c b/src/locale/langinfo.c index 7bb56eed..13abf45b 100644 --- a/src/locale/langinfo.c +++ b/src/locale/langinfo.c @@ -1,5 +1,6 @@ #include #include +#include "locale_impl.h" #include "libc.h" static const char c_time[] = @@ -60,7 +61,7 @@ char *__nl_langinfo_l(nl_item item, locale_t loc) char *__nl_langinfo(nl_item item) { - return __nl_langinfo_l(item, 0); + return __nl_langinfo_l(item, CURRENT_LOCALE); } weak_alias(__nl_langinfo, nl_langinfo); diff --git a/src/locale/strcoll.c b/src/locale/strcoll.c index 39ea1123..84f199ff 100644 --- a/src/locale/strcoll.c +++ b/src/locale/strcoll.c @@ -1,5 +1,6 @@ #include #include +#include "locale_impl.h" #include "libc.h" int __strcoll_l(const char *l, const char *r, locale_t loc) @@ -9,7 +10,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, 0); + return __strcoll_l(l, r, CURRENT_LOCALE); } weak_alias(__strcoll_l, strcoll_l); diff --git a/src/locale/strfmon.c b/src/locale/strfmon.c index e25db972..7cf2136a 100644 --- a/src/locale/strfmon.c +++ b/src/locale/strfmon.c @@ -3,6 +3,7 @@ #include #include #include +#include "locale_impl.h" static ssize_t vstrfmon_l(char *s, size_t n, locale_t loc, const char *fmt, va_list ap) { @@ -93,7 +94,7 @@ ssize_t strfmon(char *restrict s, size_t n, const char *restrict fmt, ...) ssize_t ret; va_start(ap, fmt); - ret = vstrfmon_l(s, n, 0, fmt, ap); + ret = vstrfmon_l(s, n, CURRENT_LOCALE, fmt, ap); va_end(ap); return ret; diff --git a/src/locale/strxfrm.c b/src/locale/strxfrm.c index 32c46193..14b76a63 100644 --- a/src/locale/strxfrm.c +++ b/src/locale/strxfrm.c @@ -1,5 +1,6 @@ #include #include +#include "locale_impl.h" #include "libc.h" /* collate only by code points */ @@ -12,7 +13,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, 0); + return __strxfrm_l(dest, src, n, CURRENT_LOCALE); } weak_alias(__strxfrm_l, strxfrm_l); diff --git a/src/locale/wcscoll.c b/src/locale/wcscoll.c index 20a60900..14bb8b9f 100644 --- a/src/locale/wcscoll.c +++ b/src/locale/wcscoll.c @@ -1,5 +1,6 @@ #include #include +#include "locale_impl.h" #include "libc.h" /* FIXME: stub */ @@ -10,7 +11,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, 0); + return __wcscoll_l(l, r, CURRENT_LOCALE); } weak_alias(__wcscoll_l, wcscoll_l); diff --git a/src/locale/wcsxfrm.c b/src/locale/wcsxfrm.c index 5d89e7dd..0a0b776d 100644 --- a/src/locale/wcsxfrm.c +++ b/src/locale/wcsxfrm.c @@ -1,5 +1,6 @@ #include #include +#include "locale_impl.h" #include "libc.h" /* collate only by code points */ @@ -17,7 +18,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, 0); + return __wcsxfrm_l(dest, src, n, CURRENT_LOCALE); } weak_alias(__wcsxfrm_l, wcsxfrm_l); diff --git a/src/time/strftime.c b/src/time/strftime.c index 75ebca62..794fbe1d 100644 --- a/src/time/strftime.c +++ b/src/time/strftime.c @@ -5,6 +5,7 @@ #include #include #include +#include "locale_impl.h" #include "libc.h" #include "time_impl.h" @@ -263,7 +264,7 @@ size_t __strftime_l(char *restrict s, size_t n, const char *restrict f, const st 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, 0); + return __strftime_l(s, n, f, tm, CURRENT_LOCALE); } weak_alias(__strftime_l, strftime_l); diff --git a/src/time/wcsftime.c b/src/time/wcsftime.c index 8d2a2ebc..638e64f6 100644 --- a/src/time/wcsftime.c +++ b/src/time/wcsftime.c @@ -1,6 +1,7 @@ #include #include #include +#include "locale_impl.h" #include "libc.h" const char *__strftime_fmt_1(char (*s)[100], size_t *l, int f, const struct tm *tm, locale_t loc); @@ -64,7 +65,7 @@ size_t __wcsftime_l(wchar_t *restrict s, size_t n, const wchar_t *restrict f, co 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, 0); + return __wcsftime_l(wcs, n, f, tm, CURRENT_LOCALE); } weak_alias(__wcsftime_l, wcsftime_l); -- 2.25.1