Ver código fonte

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.
Rich Felker 10 anos atrás
pai
commit
4c48501ee2

+ 2 - 1
src/locale/langinfo.c

@@ -1,5 +1,6 @@
 #include <locale.h>
 #include <langinfo.h>
+#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);

+ 2 - 1
src/locale/strcoll.c

@@ -1,5 +1,6 @@
 #include <string.h>
 #include <locale.h>
+#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);

+ 2 - 1
src/locale/strfmon.c

@@ -3,6 +3,7 @@
 #include <stdarg.h>
 #include <monetary.h>
 #include <errno.h>
+#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;

+ 2 - 1
src/locale/strxfrm.c

@@ -1,5 +1,6 @@
 #include <string.h>
 #include <locale.h>
+#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);

+ 2 - 1
src/locale/wcscoll.c

@@ -1,5 +1,6 @@
 #include <wchar.h>
 #include <locale.h>
+#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);

+ 2 - 1
src/locale/wcsxfrm.c

@@ -1,5 +1,6 @@
 #include <wchar.h>
 #include <locale.h>
+#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);

+ 2 - 1
src/time/strftime.c

@@ -5,6 +5,7 @@
 #include <locale.h>
 #include <time.h>
 #include <limits.h>
+#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);

+ 2 - 1
src/time/wcsftime.c

@@ -1,6 +1,7 @@
 #include <wchar.h>
 #include <time.h>
 #include <locale.h>
+#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);