Use locale_t, not __locale_t, throughout glibc

<locale.h> is specified to define locale_t in POSIX.1-2008, and so are
all of the headers that define functions that take locale_t arguments.
Under _GNU_SOURCE, the additional headers that define such functions
have also always defined locale_t.  Therefore, there is no need to use
__locale_t in public function prototypes, nor in any internal code.

	* ctype/ctype-c99_l.c, ctype/ctype.h, ctype/ctype_l.c
	* include/monetary.h, include/stdlib.h, include/time.h
	* include/wchar.h, locale/duplocale.c, locale/freelocale.c
	* locale/global-locale.c, locale/langinfo.h, locale/locale.h
	* locale/localeinfo.h, locale/newlocale.c
	* locale/nl_langinfo_l.c, locale/uselocale.c
	* localedata/bug-usesetlocale.c, localedata/tst-xlocale2.c
	* stdio-common/vfscanf.c, stdlib/monetary.h, stdlib/stdlib.h
	* stdlib/strfmon_l.c, stdlib/strtod_l.c, stdlib/strtof_l.c
	* stdlib/strtol.c, stdlib/strtol_l.c, stdlib/strtold_l.c
	* stdlib/strtoll_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c
	* string/strcasecmp.c, string/strcoll_l.c, string/string.h
	* string/strings.h, string/strncase.c, string/strxfrm_l.c
	* sysdeps/ieee754/float128/strtof128_l.c
	* sysdeps/ieee754/float128/wcstof128.c
	* sysdeps/ieee754/float128/wcstof128_l.c
	* sysdeps/ieee754/ldbl-128ibm/strtold_l.c
	* sysdeps/ieee754/ldbl-64-128/strtold_l.c
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.c
	* sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
	* sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
	* sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
	* sysdeps/powerpc/powerpc32/power7/strcasecmp.S
	* sysdeps/powerpc/powerpc64/power7/strcasecmp.S
	* sysdeps/x86_64/strcasecmp_l-nonascii.c
	* sysdeps/x86_64/strncase_l-nonascii.c, time/strftime_l.c
	* time/strptime_l.c, time/time.h, wcsmbs/mbsrtowcs_l.c
	* wcsmbs/wchar.h, wcsmbs/wcscasecmp.c, wcsmbs/wcsncase.c
	* wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c
	* wcsmbs/wcstof_l.c, wcsmbs/wcstol_l.c, wcsmbs/wcstold.c
	* wcsmbs/wcstold_l.c, wcsmbs/wcstoll_l.c, wcsmbs/wcstoul_l.c
	* wcsmbs/wcstoull_l.c, wctype/iswctype_l.c
	* wctype/towctrans_l.c, wctype/wcfuncs_l.c
	* wctype/wctrans_l.c, wctype/wctype.h, wctype/wctype_l.c:
	Change all uses of __locale_t to locale_t.
This commit is contained in:
Zack Weinberg 2017-06-20 09:26:43 -04:00
parent f0be25b633
commit af85385f31
73 changed files with 207 additions and 171 deletions

View File

@ -1,31 +1,67 @@
2017-06-20 Zack Weinberg <zackw@panix.com> 2017-06-20 Zack Weinberg <zackw@panix.com>
* locale/xlocale.h: Rename to... * locale/xlocale.h: Rename to...
* locale/bits/types/__locale_t.h: ...here. Adjust commentary. * locale/bits/types/__locale_t.h: ...here. Adjust commentary.
Only define struct __locale_struct and __locale_t, not locale_t. Only define struct __locale_struct and __locale_t, not locale_t.
* locale/bits/types/locale_t.h: New file; define locale_t here. * locale/bits/types/locale_t.h: New file; define locale_t here.
* locale/Makefile (headers): Update to match. * locale/Makefile (headers): Update to match.
* include/xlocale.h: Delete wrapper. * include/xlocale.h: Delete wrapper.
* include/bits/types/__locale_t.h: New wrapper. * include/bits/types/__locale_t.h: New wrapper.
* include/bits/types/locale_t.h: New wrapper. * include/bits/types/locale_t.h: New wrapper.
* ctype/ctype.h, include/printf.h, include/time.h * ctype/ctype.h, include/printf.h, include/time.h
* locale/langinfo.h, locale/locale.h, stdlib/monetary.h * locale/langinfo.h, locale/locale.h, stdlib/monetary.h
* stdlib/stdlib.h, string/string.h, string/strings.h, time/time.h * stdlib/stdlib.h, string/string.h, string/strings.h, time/time.h
* wcsmbs/wchar.h, wctype/wctype.h: Use bits/types/locale_t.h. * wcsmbs/wchar.h, wctype/wctype.h: Use bits/types/locale_t.h.
Correct outdated comments regarding the standardization status of Correct outdated comments regarding the standardization status of
the functions that take locale_t arguments. the functions that take locale_t arguments.
* stdlib/strtod_l.c, stdlib/strtof_l.c, stdlib/strtol_l.c * stdlib/strtod_l.c, stdlib/strtof_l.c, stdlib/strtol_l.c
* stdlib/strtold_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c * stdlib/strtold_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c * sysdeps/ieee754/ldbl-128ibm/strtold_l.c
* sysdeps/ieee754/ldbl-64-128/strtold_l.c * sysdeps/ieee754/ldbl-64-128/strtold_l.c
* wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c * wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c
* wcsmbs/wcstof_l.c, wcsmbs/wcstold.c, wcsmbs/wcstold_l.c: * wcsmbs/wcstof_l.c, wcsmbs/wcstold.c, wcsmbs/wcstold_l.c:
Don't include xlocale.h. If necessary, include locale.h instead. Don't include xlocale.h. If necessary, include locale.h instead.
* stdlib/strtold_l.c: Unconditionally include wchar.h. * stdlib/strtold_l.c: Unconditionally include wchar.h.
* ctype/ctype-c99_l.c, ctype/ctype.h, ctype/ctype_l.c
* include/monetary.h, include/stdlib.h, include/time.h
* include/wchar.h, locale/duplocale.c, locale/freelocale.c
* locale/global-locale.c, locale/langinfo.h, locale/locale.h
* locale/localeinfo.h, locale/newlocale.c
* locale/nl_langinfo_l.c, locale/uselocale.c
* localedata/bug-usesetlocale.c, localedata/tst-xlocale2.c
* stdio-common/vfscanf.c, stdlib/monetary.h, stdlib/stdlib.h
* stdlib/strfmon_l.c, stdlib/strtod_l.c, stdlib/strtof_l.c
* stdlib/strtol.c, stdlib/strtol_l.c, stdlib/strtold_l.c
* stdlib/strtoll_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c
* string/strcasecmp.c, string/strcoll_l.c, string/string.h
* string/strings.h, string/strncase.c, string/strxfrm_l.c
* sysdeps/ieee754/float128/strtof128_l.c
* sysdeps/ieee754/float128/wcstof128.c
* sysdeps/ieee754/float128/wcstof128_l.c
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c
* sysdeps/ieee754/ldbl-64-128/strtold_l.c
* sysdeps/ieee754/ldbl-opt/nldbl-compat.c
* sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
* sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
* sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
* sysdeps/powerpc/powerpc32/power7/strcasecmp.S
* sysdeps/powerpc/powerpc64/power7/strcasecmp.S
* sysdeps/x86_64/strcasecmp_l-nonascii.c
* sysdeps/x86_64/strncase_l-nonascii.c, time/strftime_l.c
* time/strptime_l.c, time/time.h, wcsmbs/mbsrtowcs_l.c
* wcsmbs/wchar.h, wcsmbs/wcscasecmp.c, wcsmbs/wcsncase.c
* wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c
* wcsmbs/wcstof_l.c, wcsmbs/wcstol_l.c, wcsmbs/wcstold.c
* wcsmbs/wcstold_l.c, wcsmbs/wcstoll_l.c, wcsmbs/wcstoul_l.c
* wcsmbs/wcstoull_l.c, wctype/iswctype_l.c
* wctype/towctrans_l.c, wctype/wcfuncs_l.c
* wctype/wctrans_l.c, wctype/wctype.h, wctype/wctype_l.c:
Change all uses of __locale_t to locale_t.
2017-06-20 Adhemerval Zanella <adhemerval.zanella@linaro.org> 2017-06-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>

View File

@ -20,7 +20,7 @@
#include <ctype.h> #include <ctype.h>
int int
__isblank_l (int c, __locale_t l) __isblank_l (int c, locale_t l)
{ {
return __isctype_l (c, _ISblank, l); return __isctype_l (c, _ISblank, l);
} }

View File

@ -242,7 +242,7 @@ __NTH (toupper (int __c))
((locale)->__ctype_b[(int) (c)] & (unsigned short int) type) ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type)
# define __exctype_l(name) \ # define __exctype_l(name) \
extern int name (int, __locale_t) __THROW extern int name (int, locale_t) __THROW
/* The following names are all functions: /* The following names are all functions:
int isCHARACTERISTIC(int c, locale_t *locale); int isCHARACTERISTIC(int c, locale_t *locale);
@ -264,12 +264,12 @@ __exctype_l (isblank_l);
/* Return the lowercase version of C in locale L. */ /* Return the lowercase version of C in locale L. */
extern int __tolower_l (int __c, __locale_t __l) __THROW; extern int __tolower_l (int __c, locale_t __l) __THROW;
extern int tolower_l (int __c, __locale_t __l) __THROW; extern int tolower_l (int __c, locale_t __l) __THROW;
/* Return the uppercase version of C. */ /* Return the uppercase version of C. */
extern int __toupper_l (int __c, __locale_t __l) __THROW; extern int __toupper_l (int __c, locale_t __l) __THROW;
extern int toupper_l (int __c, __locale_t __l) __THROW; extern int toupper_l (int __c, locale_t __l) __THROW;
# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus # if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
# define __tolower_l(c, locale) \ # define __tolower_l(c, locale) \

View File

@ -21,7 +21,7 @@
/* Provide real-function versions of all the ctype macros. */ /* Provide real-function versions of all the ctype macros. */
#define func(name, type) \ #define func(name, type) \
int __##name (int c, __locale_t l) { return __isctype_l (c, type, l); } \ int __##name (int c, locale_t l) { return __isctype_l (c, type, l); } \
weak_alias (__##name, name) weak_alias (__##name, name)
func (isalnum_l, _ISalnum) func (isalnum_l, _ISalnum)
@ -37,14 +37,14 @@ func (isupper_l, _ISupper)
func (isxdigit_l, _ISxdigit) func (isxdigit_l, _ISxdigit)
int int
(__tolower_l) (int c, __locale_t l) (__tolower_l) (int c, locale_t l)
{ {
return l->__ctype_tolower[c]; return l->__ctype_tolower[c];
} }
weak_alias (__tolower_l, tolower_l) weak_alias (__tolower_l, tolower_l)
int int
(__toupper_l) (int c, __locale_t l) (__toupper_l) (int c, locale_t l)
{ {
return l->__ctype_toupper[c]; return l->__ctype_toupper[c];
} }

View File

@ -2,6 +2,6 @@
#ifndef _ISOMAC #ifndef _ISOMAC
#include <stdarg.h> #include <stdarg.h>
extern ssize_t __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, extern ssize_t __vstrfmon_l (char *s, size_t maxsize, locale_t loc,
const char *format, va_list ap); const char *format, va_list ap);
#endif #endif

View File

@ -156,34 +156,34 @@ libc_hidden_proto (__strtoull_internal)
extern double ____strtod_l_internal (const char *__restrict __nptr, extern double ____strtod_l_internal (const char *__restrict __nptr,
char **__restrict __endptr, int __group, char **__restrict __endptr, int __group,
__locale_t __loc); locale_t __loc);
extern float ____strtof_l_internal (const char *__restrict __nptr, extern float ____strtof_l_internal (const char *__restrict __nptr,
char **__restrict __endptr, int __group, char **__restrict __endptr, int __group,
__locale_t __loc); locale_t __loc);
extern long double ____strtold_l_internal (const char *__restrict __nptr, extern long double ____strtold_l_internal (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
int __group, __locale_t __loc); int __group, locale_t __loc);
extern long int ____strtol_l_internal (const char *__restrict __nptr, extern long int ____strtol_l_internal (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
int __base, int __group, int __base, int __group,
__locale_t __loc); locale_t __loc);
extern unsigned long int ____strtoul_l_internal (const char * extern unsigned long int ____strtoul_l_internal (const char *
__restrict __nptr, __restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
int __base, int __group, int __base, int __group,
__locale_t __loc); locale_t __loc);
__extension__ __extension__
extern long long int ____strtoll_l_internal (const char *__restrict __nptr, extern long long int ____strtoll_l_internal (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
int __base, int __group, int __base, int __group,
__locale_t __loc); locale_t __loc);
__extension__ __extension__
extern unsigned long long int ____strtoull_l_internal (const char * extern unsigned long long int ____strtoull_l_internal (const char *
__restrict __nptr, __restrict __nptr,
char ** char **
__restrict __endptr, __restrict __endptr,
int __base, int __group, int __base, int __group,
__locale_t __loc); locale_t __loc);
libc_hidden_proto (____strtof_l_internal) libc_hidden_proto (____strtof_l_internal)
libc_hidden_proto (____strtod_l_internal) libc_hidden_proto (____strtod_l_internal)
@ -243,7 +243,7 @@ libc_hidden_proto (__strtof128_internal)
extern _Float128 ____strtof128_l_internal (const char *__restrict __nptr, extern _Float128 ____strtof128_l_internal (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
int __group, __locale_t __loc); int __group, locale_t __loc);
libc_hidden_proto (____strtof128_l_internal) libc_hidden_proto (____strtof128_l_internal)
#endif #endif

View File

@ -92,7 +92,7 @@ extern int __getclktck (void);
/* strptime support. */ /* strptime support. */
extern char * __strptime_internal (const char *rp, const char *fmt, extern char * __strptime_internal (const char *rp, const char *fmt,
struct tm *tm, void *statep, struct tm *tm, void *statep,
__locale_t locparam) locale_t locparam)
internal_function; internal_function;
extern double __difftime (time_t time1, time_t time0); extern double __difftime (time_t time1, time_t time0);

View File

@ -54,7 +54,7 @@ extern unsigned long long int __wcstoull_internal (const wchar_t *
int __group) __THROW; int __group) __THROW;
extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
wchar_t **, int, int, wchar_t **, int, int,
__locale_t); locale_t);
libc_hidden_proto (__wcstof_internal) libc_hidden_proto (__wcstof_internal)
libc_hidden_proto (__wcstod_internal) libc_hidden_proto (__wcstod_internal)
libc_hidden_proto (__wcstold_internal) libc_hidden_proto (__wcstold_internal)
@ -221,7 +221,7 @@ libc_hidden_proto (__isoc99_vfwscanf)
/* Internal functions. */ /* Internal functions. */
extern size_t __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len, extern size_t __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len,
mbstate_t *ps, __locale_t l) attribute_hidden; mbstate_t *ps, locale_t l) attribute_hidden;
/* Special version. We know that all uses of mbsinit inside the libc /* Special version. We know that all uses of mbsinit inside the libc
have a non-NULL parameter. And certainly we can access the have a non-NULL parameter. And certainly we can access the

View File

@ -29,8 +29,8 @@
__libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden) __libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden)
__locale_t locale_t
__duplocale (__locale_t dataset) __duplocale (locale_t dataset)
{ {
/* This static object is returned for newlocale (LC_ALL_MASK, "C"). */ /* This static object is returned for newlocale (LC_ALL_MASK, "C"). */
if (dataset == _nl_C_locobj_ptr) if (dataset == _nl_C_locobj_ptr)
@ -40,7 +40,7 @@ __duplocale (__locale_t dataset)
if (dataset == LC_GLOBAL_LOCALE) if (dataset == LC_GLOBAL_LOCALE)
dataset = &_nl_global_locale; dataset = &_nl_global_locale;
__locale_t result; locale_t result;
int cnt; int cnt;
size_t names_len = 0; size_t names_len = 0;

View File

@ -29,7 +29,7 @@ __libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden)
void void
__freelocale (__locale_t dataset) __freelocale (locale_t dataset)
{ {
int cnt; int cnt;

View File

@ -61,4 +61,4 @@ struct __locale_struct _nl_global_locale attribute_hidden =
#include <tls.h> #include <tls.h>
/* The tsd macros don't permit an initializer. */ /* The tsd macros don't permit an initializer. */
__thread __locale_t __libc_tsd_LOCALE = &_nl_global_locale; __thread locale_t __libc_tsd_LOCALE = &_nl_global_locale;

View File

@ -588,7 +588,7 @@ extern char *nl_langinfo (nl_item __item) __THROW;
# include <bits/types/locale_t.h> # include <bits/types/locale_t.h>
/* Just like nl_langinfo but get the information from the locale object L. */ /* Just like nl_langinfo but get the information from the locale object L. */
extern char *nl_langinfo_l (nl_item __item, __locale_t __l); extern char *nl_langinfo_l (nl_item __item, locale_t __l);
#endif #endif
__END_DECLS __END_DECLS

View File

@ -138,8 +138,8 @@ extern struct lconv *localeconv (void) __THROW;
datasets. Unlike for the CATEGORY parameter for `setlocale' the datasets. Unlike for the CATEGORY parameter for `setlocale' the
CATEGORY_MASK parameter here uses a single bit for each category, CATEGORY_MASK parameter here uses a single bit for each category,
made by OR'ing together LC_*_MASK bits above. */ made by OR'ing together LC_*_MASK bits above. */
extern __locale_t newlocale (int __category_mask, const char *__locale, extern locale_t newlocale (int __category_mask, const char *__locale,
__locale_t __base) __THROW; locale_t __base) __THROW;
/* These are the bits that can be set in the CATEGORY_MASK argument to /* These are the bits that can be set in the CATEGORY_MASK argument to
`newlocale'. In the GNU implementation, LC_FOO_MASK has the value `newlocale'. In the GNU implementation, LC_FOO_MASK has the value
@ -173,22 +173,22 @@ extern __locale_t newlocale (int __category_mask, const char *__locale,
/* Return a duplicate of the set of locale in DATASET. All usage /* Return a duplicate of the set of locale in DATASET. All usage
counters are increased if necessary. */ counters are increased if necessary. */
extern __locale_t duplocale (__locale_t __dataset) __THROW; extern locale_t duplocale (locale_t __dataset) __THROW;
/* Free the data associated with a locale dataset previously returned /* Free the data associated with a locale dataset previously returned
by a call to `setlocale_r'. */ by a call to `setlocale_r'. */
extern void freelocale (__locale_t __dataset) __THROW; extern void freelocale (locale_t __dataset) __THROW;
/* Switch the current thread's locale to DATASET. /* Switch the current thread's locale to DATASET.
If DATASET is null, instead just return the current setting. If DATASET is null, instead just return the current setting.
The special value LC_GLOBAL_LOCALE is the initial setting The special value LC_GLOBAL_LOCALE is the initial setting
for all threads and can also be installed any time, meaning for all threads and can also be installed any time, meaning
the thread uses the global settings controlled by `setlocale'. */ the thread uses the global settings controlled by `setlocale'. */
extern __locale_t uselocale (__locale_t __dataset) __THROW; extern locale_t uselocale (locale_t __dataset) __THROW;
/* This value can be passed to `uselocale' and may be returned by it. /* This value can be passed to `uselocale' and may be returned by it.
Passing this value to any other function has undefined behavior. */ Passing this value to any other function has undefined behavior. */
# define LC_GLOBAL_LOCALE ((__locale_t) -1L) # define LC_GLOBAL_LOCALE ((locale_t) -1L)
#endif #endif

View File

@ -214,9 +214,9 @@ extern struct __locale_struct _nl_global_locale attribute_hidden;
/* This fetches the thread-local locale_t pointer, either one set with /* This fetches the thread-local locale_t pointer, either one set with
uselocale or &_nl_global_locale. */ uselocale or &_nl_global_locale. */
#define _NL_CURRENT_LOCALE (__libc_tsd_get (__locale_t, LOCALE)) #define _NL_CURRENT_LOCALE (__libc_tsd_get (locale_t, LOCALE))
#include <libc-tsd.h> #include <libc-tsd.h>
__libc_tsd_define (extern, __locale_t, LOCALE) __libc_tsd_define (extern, locale_t, LOCALE)
/* For static linking it is desireable to avoid always linking in the code /* For static linking it is desireable to avoid always linking in the code

View File

@ -39,13 +39,13 @@ __libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden)
} while (0) } while (0)
__locale_t locale_t
__newlocale (int category_mask, const char *locale, __locale_t base) __newlocale (int category_mask, const char *locale, locale_t base)
{ {
/* Intermediate memory for result. */ /* Intermediate memory for result. */
const char *newnames[__LC_LAST]; const char *newnames[__LC_LAST];
struct __locale_struct result; struct __locale_struct result;
__locale_t result_ptr; locale_t result_ptr;
char *locale_path; char *locale_path;
size_t locale_path_len; size_t locale_path_len;
const char *locpath_var; const char *locpath_var;
@ -86,7 +86,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
dataset using the C locale data. */ dataset using the C locale data. */
if (category_mask == 0) if (category_mask == 0)
{ {
result_ptr = (__locale_t) malloc (sizeof (struct __locale_struct)); result_ptr = (locale_t) malloc (sizeof (struct __locale_struct));
if (result_ptr == NULL) if (result_ptr == NULL)
return NULL; return NULL;
*result_ptr = result; *result_ptr = result;

View File

@ -27,7 +27,7 @@
/* Return a string with the data for locale-dependent parameter ITEM. */ /* Return a string with the data for locale-dependent parameter ITEM. */
char * char *
__nl_langinfo_l (nl_item item, __locale_t l) __nl_langinfo_l (nl_item item, locale_t l)
{ {
int category = _NL_ITEM_CATEGORY (item); int category = _NL_ITEM_CATEGORY (item);
unsigned int index = _NL_ITEM_INDEX (item); unsigned int index = _NL_ITEM_INDEX (item);

View File

@ -34,7 +34,7 @@ __uselocale (locale_t newloc)
{ {
const locale_t locobj const locale_t locobj
= newloc == LC_GLOBAL_LOCALE ? &_nl_global_locale : newloc; = newloc == LC_GLOBAL_LOCALE ? &_nl_global_locale : newloc;
__libc_tsd_set (__locale_t, LOCALE, locobj); __libc_tsd_set (locale_t, LOCALE, locobj);
#ifdef NL_CURRENT_INDIRECT #ifdef NL_CURRENT_INDIRECT
/* Now we must update all the per-category thread-local variables to /* Now we must update all the per-category thread-local variables to

View File

@ -8,7 +8,7 @@
static int static int
do_test (void) do_test (void)
{ {
__locale_t loc_new, loc_old; locale_t loc_new, loc_old;
int first = !!isalpha(0xE4); int first = !!isalpha(0xE4);

View File

@ -4,7 +4,7 @@
#include <stdlib.h> #include <stdlib.h>
static int do_test (__locale_t l); static int do_test (locale_t l);
int int
main (void) main (void)

View File

@ -289,7 +289,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
int flags; /* Modifiers for current format element. */ int flags; /* Modifiers for current format element. */
int errval = 0; int errval = 0;
#ifndef COMPILE_WSCANF #ifndef COMPILE_WSCANF
__locale_t loc = _NL_CURRENT_LOCALE; locale_t loc = _NL_CURRENT_LOCALE;
struct __locale_data *const curctype = loc->__locales[LC_CTYPE]; struct __locale_data *const curctype = loc->__locales[LC_CTYPE];
#endif #endif

View File

@ -45,7 +45,7 @@ extern ssize_t strfmon (char *__restrict __s, size_t __maxsize,
/* Formatting a monetary value according to the given locale. */ /* Formatting a monetary value according to the given locale. */
extern ssize_t strfmon_l (char *__restrict __s, size_t __maxsize, extern ssize_t strfmon_l (char *__restrict __s, size_t __maxsize,
__locale_t __loc, locale_t __loc,
const char *__restrict __format, ...) const char *__restrict __format, ...)
__THROW __attribute_format_strfmon__ (4, 5); __THROW __attribute_format_strfmon__ (4, 5);
#endif #endif

View File

@ -200,42 +200,42 @@ extern int strfromf128 (char *__dest, size_t __size, const char * __format,
extern long int strtol_l (const char *__restrict __nptr, extern long int strtol_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base, char **__restrict __endptr, int __base,
__locale_t __loc) __THROW __nonnull ((1, 4)); locale_t __loc) __THROW __nonnull ((1, 4));
extern unsigned long int strtoul_l (const char *__restrict __nptr, extern unsigned long int strtoul_l (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
int __base, __locale_t __loc) int __base, locale_t __loc)
__THROW __nonnull ((1, 4)); __THROW __nonnull ((1, 4));
__extension__ __extension__
extern long long int strtoll_l (const char *__restrict __nptr, extern long long int strtoll_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base, char **__restrict __endptr, int __base,
__locale_t __loc) locale_t __loc)
__THROW __nonnull ((1, 4)); __THROW __nonnull ((1, 4));
__extension__ __extension__
extern unsigned long long int strtoull_l (const char *__restrict __nptr, extern unsigned long long int strtoull_l (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
int __base, __locale_t __loc) int __base, locale_t __loc)
__THROW __nonnull ((1, 4)); __THROW __nonnull ((1, 4));
extern double strtod_l (const char *__restrict __nptr, extern double strtod_l (const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc) char **__restrict __endptr, locale_t __loc)
__THROW __nonnull ((1, 3)); __THROW __nonnull ((1, 3));
extern float strtof_l (const char *__restrict __nptr, extern float strtof_l (const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc) char **__restrict __endptr, locale_t __loc)
__THROW __nonnull ((1, 3)); __THROW __nonnull ((1, 3));
extern long double strtold_l (const char *__restrict __nptr, extern long double strtold_l (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
__locale_t __loc) locale_t __loc)
__THROW __nonnull ((1, 3)); __THROW __nonnull ((1, 3));
# if __HAVE_FLOAT128 # if __HAVE_FLOAT128
extern _Float128 strtof128_l (const char *__restrict __nptr, extern _Float128 strtof128_l (const char *__restrict __nptr,
char **__restrict __endptr, char **__restrict __endptr,
__locale_t __loc) locale_t __loc)
__THROW __nonnull ((1, 3)); __THROW __nonnull ((1, 3));
# endif # endif
#endif /* GNU */ #endif /* GNU */

View File

@ -81,7 +81,7 @@ extern unsigned int __guess_grouping (unsigned int intdig_max,
too. Some of the information contradicts the information which can too. Some of the information contradicts the information which can
be specified in format string. */ be specified in format string. */
ssize_t ssize_t
__vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
va_list ap) va_list ap)
{ {
struct __locale_data *current = loc->__locales[LC_MONETARY]; struct __locale_data *current = loc->__locales[LC_MONETARY];
@ -609,7 +609,7 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
} }
ssize_t ssize_t
___strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...) ___strfmon_l (char *s, size_t maxsize, locale_t loc, const char *format, ...)
{ {
va_list ap; va_list ap;

View File

@ -19,7 +19,7 @@
#include <locale.h> #include <locale.h>
extern double ____strtod_l_internal (const char *, char **, int, __locale_t); extern double ____strtod_l_internal (const char *, char **, int, locale_t);
/* Configuration part. These macros are defined by `strtold.c', /* Configuration part. These macros are defined by `strtold.c',
`strtof.c', `wcstod.c', `wcstold.c', and `wcstof.c' to produce the `strtof.c', `wcstod.c', `wcstold.c', and `wcstof.c' to produce the
@ -484,7 +484,7 @@ str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize,
ERANGE and return HUGE_VAL with the appropriate sign. */ ERANGE and return HUGE_VAL with the appropriate sign. */
FLOAT FLOAT
____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group, ____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group,
__locale_t loc) locale_t loc)
{ {
int negative; /* The sign of the number. */ int negative; /* The sign of the number. */
MPN_VAR (num); /* MP representation of the number. */ MPN_VAR (num); /* MP representation of the number. */
@ -1758,7 +1758,7 @@ FLOAT
#ifdef weak_function #ifdef weak_function
weak_function weak_function
#endif #endif
__STRTOF (const STRING_TYPE *nptr, STRING_TYPE **endptr, __locale_t loc) __STRTOF (const STRING_TYPE *nptr, STRING_TYPE **endptr, locale_t loc)
{ {
return ____STRTOF_INTERNAL (nptr, endptr, 0, loc); return ____STRTOF_INTERNAL (nptr, endptr, 0, loc);
} }

View File

@ -19,7 +19,7 @@
#include <locale.h> #include <locale.h>
extern float ____strtof_l_internal (const char *, char **, int, __locale_t); extern float ____strtof_l_internal (const char *, char **, int, locale_t);
#define FLOAT float #define FLOAT float
#define FLT FLT #define FLT FLT

View File

@ -88,7 +88,7 @@
extern INT INTERNAL (__strtol_l) (const STRING_TYPE *, STRING_TYPE **, int, extern INT INTERNAL (__strtol_l) (const STRING_TYPE *, STRING_TYPE **, int,
int, __locale_t); int, locale_t);
INT INT

View File

@ -222,7 +222,7 @@ extern const unsigned char __strtol_ull_rem_tab[] attribute_hidden;
INT INT
INTERNAL (__strtol_l) (const STRING_TYPE *nptr, STRING_TYPE **endptr, INTERNAL (__strtol_l) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
int base, int group, __locale_t loc) int base, int group, locale_t loc)
{ {
int negative; int negative;
unsigned LONG int cutoff; unsigned LONG int cutoff;
@ -542,7 +542,7 @@ INT
weak_function weak_function
#endif #endif
__strtol_l (const STRING_TYPE *nptr, STRING_TYPE **endptr, __strtol_l (const STRING_TYPE *nptr, STRING_TYPE **endptr,
int base, __locale_t loc) int base, locale_t loc)
{ {
return INTERNAL (__strtol_l) (nptr, endptr, base, 0, loc); return INTERNAL (__strtol_l) (nptr, endptr, base, 0, loc);
} }

View File

@ -35,12 +35,12 @@
#define INTERNAL1(x) __##x##_internal #define INTERNAL1(x) __##x##_internal
extern double INTERNAL (__STRTOD) (const STRING_TYPE *, STRING_TYPE **, extern double INTERNAL (__STRTOD) (const STRING_TYPE *, STRING_TYPE **,
int, __locale_t); int, locale_t);
/* There is no `long double' type, use the `double' implementations. */ /* There is no `long double' type, use the `double' implementations. */
long double long double
INTERNAL (__STRTOLD) (const STRING_TYPE *nptr, STRING_TYPE **endptr, INTERNAL (__STRTOLD) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
int group, __locale_t loc) int group, locale_t loc)
{ {
return INTERNAL (__STRTOD) (nptr, endptr, group, loc); return INTERNAL (__STRTOD) (nptr, endptr, group, loc);
} }
@ -50,7 +50,7 @@ libc_hidden_def (INTERNAL (__STRTOLD))
long double long double
weak_function weak_function
__STRTOLD (const STRING_TYPE *nptr, STRING_TYPE **endptr, __locale_t loc) __STRTOLD (const STRING_TYPE *nptr, STRING_TYPE **endptr, locale_t loc)
{ {
return INTERNAL (__STRTOD) (nptr, endptr, 0, loc); return INTERNAL (__STRTOD) (nptr, endptr, 0, loc);
} }

View File

@ -22,6 +22,6 @@
#include <locale.h> #include <locale.h>
extern long long int ____strtoll_l_internal (const char *, char **, int, int, extern long long int ____strtoll_l_internal (const char *, char **, int, int,
__locale_t); locale_t);
#include <strtol_l.c> #include <strtol_l.c>

View File

@ -22,6 +22,6 @@
#include <locale.h> #include <locale.h>
extern unsigned long int ____strtoul_l_internal (const char *, char **, int, extern unsigned long int ____strtoul_l_internal (const char *, char **, int,
int, __locale_t); int, locale_t);
#include "strtol_l.c" #include "strtol_l.c"

View File

@ -23,6 +23,6 @@
#include <locale.h> #include <locale.h>
extern unsigned long long int ____strtoull_l_internal (const char *, char **, extern unsigned long long int ____strtoull_l_internal (const char *, char **,
int, int, __locale_t); int, int, locale_t);
#include <strtol_l.c> #include <strtol_l.c>

View File

@ -34,7 +34,7 @@
#endif #endif
#ifdef USE_IN_EXTENDED_LOCALE_MODEL #ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define LOCALE_PARAM , __locale_t loc # define LOCALE_PARAM , locale_t loc
#else #else
# define LOCALE_PARAM # define LOCALE_PARAM
#endif #endif
@ -46,7 +46,7 @@ int
__strcasecmp (const char *s1, const char *s2 LOCALE_PARAM) __strcasecmp (const char *s1, const char *s2 LOCALE_PARAM)
{ {
#if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL #if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL
__locale_t loc = _NL_CURRENT_LOCALE; locale_t loc = _NL_CURRENT_LOCALE;
#endif #endif
const unsigned char *p1 = (const unsigned char *) s1; const unsigned char *p1 = (const unsigned char *) s1;
const unsigned char *p2 = (const unsigned char *) s2; const unsigned char *p2 = (const unsigned char *) s2;

View File

@ -254,7 +254,7 @@ out:
} }
int int
STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l) STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, locale_t l)
{ {
struct __locale_data *current = l->__locales[LC_COLLATE]; struct __locale_data *current = l->__locales[LC_COLLATE];
uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word;

View File

@ -152,12 +152,12 @@ extern size_t strxfrm (char *__restrict __dest,
# include <bits/types/locale_t.h> # include <bits/types/locale_t.h>
/* Compare the collated forms of S1 and S2, using sorting rules from L. */ /* Compare the collated forms of S1 and S2, using sorting rules from L. */
extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
__THROW __attribute_pure__ __nonnull ((1, 2, 3)); __THROW __attribute_pure__ __nonnull ((1, 2, 3));
/* Put a transformation of SRC into no more than N bytes of DEST, /* Put a transformation of SRC into no more than N bytes of DEST,
using sorting rules from L. */ using sorting rules from L. */
extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
__locale_t __l) __THROW __nonnull ((2, 4)); locale_t __l) __THROW __nonnull ((2, 4));
#endif #endif
#if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \ #if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \
@ -424,7 +424,7 @@ extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
#ifdef __USE_XOPEN2K8 #ifdef __USE_XOPEN2K8
/* Translate error number to string according to the locale L. */ /* Translate error number to string according to the locale L. */
extern char *strerror_l (int __errnum, __locale_t __l) __THROW; extern char *strerror_l (int __errnum, locale_t __l) __THROW;
#endif #endif
#ifdef __USE_MISC #ifdef __USE_MISC

View File

@ -125,13 +125,13 @@ extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
# include <bits/types/locale_t.h> # include <bits/types/locale_t.h>
/* Compare S1 and S2, ignoring case, using collation rules from LOC. */ /* Compare S1 and S2, ignoring case, using collation rules from LOC. */
extern int strcasecmp_l (const char *__s1, const char *__s2, __locale_t __loc) extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
__THROW __attribute_pure__ __nonnull ((1, 2, 3)); __THROW __attribute_pure__ __nonnull ((1, 2, 3));
/* Compare no more than N chars of S1 and S2, ignoring case, using /* Compare no more than N chars of S1 and S2, ignoring case, using
collation rules from LOC. */ collation rules from LOC. */
extern int strncasecmp_l (const char *__s1, const char *__s2, extern int strncasecmp_l (const char *__s1, const char *__s2,
size_t __n, __locale_t __loc) size_t __n, locale_t __loc)
__THROW __attribute_pure__ __nonnull ((1, 2, 4)); __THROW __attribute_pure__ __nonnull ((1, 2, 4));
#endif #endif

View File

@ -36,7 +36,7 @@
#endif #endif
#ifdef USE_IN_EXTENDED_LOCALE_MODEL #ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define LOCALE_PARAM , __locale_t loc # define LOCALE_PARAM , locale_t loc
#else #else
# define LOCALE_PARAM # define LOCALE_PARAM
#endif #endif
@ -49,7 +49,7 @@ int
__strncasecmp (const char *s1, const char *s2, size_t n LOCALE_PARAM) __strncasecmp (const char *s1, const char *s2, size_t n LOCALE_PARAM)
{ {
#if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL #if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL
__locale_t loc = _NL_CURRENT_LOCALE; locale_t loc = _NL_CURRENT_LOCALE;
#endif #endif
const unsigned char *p1 = (const unsigned char *) s1; const unsigned char *p1 = (const unsigned char *) s1;
const unsigned char *p2 = (const unsigned char *) s2; const unsigned char *p2 = (const unsigned char *) s2;

View File

@ -665,7 +665,7 @@ do_xfrm_cached (STRING_TYPE *dest, size_t n, const locale_data_t *l_data,
} }
size_t size_t
STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, locale_t l)
{ {
locale_data_t l_data; locale_data_t l_data;
struct __locale_data *current = l->__locales[LC_COLLATE]; struct __locale_data *current = l->__locales[LC_COLLATE];

View File

@ -22,7 +22,7 @@
#include <bits/floatn.h> #include <bits/floatn.h>
extern _Float128 ____strtof128_l_internal (const char *, char **, extern _Float128 ____strtof128_l_internal (const char *, char **,
int, __locale_t); int, locale_t);
#define FLOAT _Float128 #define FLOAT _Float128
#define FLT FLT128 #define FLT FLT128

View File

@ -25,6 +25,6 @@
#include <bits/floatn.h> #include <bits/floatn.h>
extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int, extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#include "strtof128.c" #include "strtof128.c"

View File

@ -25,6 +25,6 @@
#include <bits/floatn.h> #include <bits/floatn.h>
extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int, extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#include "strtof128_l.c" #include "strtof128_l.c"

View File

@ -25,13 +25,13 @@
#define FLOAT long double #define FLOAT long double
#define FLT LDBL #define FLT LDBL
#ifdef USE_WIDE_CHAR #ifdef USE_WIDE_CHAR
extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, __locale_t); extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, locale_t);
# define STRTOF __new_wcstold_l # define STRTOF __new_wcstold_l
# define __STRTOF ____new_wcstold_l # define __STRTOF ____new_wcstold_l
# define ____STRTOF_INTERNAL ____wcstold_l_internal # define ____STRTOF_INTERNAL ____wcstold_l_internal
# define STRTOF_NAN __wcstold_nan # define STRTOF_NAN __wcstold_nan
#else #else
extern long double ____new_strtold_l (const char *, char **, __locale_t); extern long double ____new_strtold_l (const char *, char **, locale_t);
# define STRTOF __new_strtold_l # define STRTOF __new_strtold_l
# define __STRTOF ____new_strtold_l # define __STRTOF ____new_strtold_l
# define ____STRTOF_INTERNAL ____strtold_l_internal # define ____STRTOF_INTERNAL ____strtold_l_internal

View File

@ -25,13 +25,13 @@
#define FLOAT long double #define FLOAT long double
#define FLT LDBL #define FLT LDBL
#ifdef USE_WIDE_CHAR #ifdef USE_WIDE_CHAR
extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, __locale_t); extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, locale_t);
# define STRTOF __new_wcstold_l # define STRTOF __new_wcstold_l
# define __STRTOF ____new_wcstold_l # define __STRTOF ____new_wcstold_l
# define ____STRTOF_INTERNAL ____wcstold_l_internal # define ____STRTOF_INTERNAL ____wcstold_l_internal
# define STRTOF_NAN __wcstold_nan # define STRTOF_NAN __wcstold_nan
#else #else
extern long double ____new_strtold_l (const char *, char **, __locale_t); extern long double ____new_strtold_l (const char *, char **, locale_t);
# define STRTOF __new_strtold_l # define STRTOF __new_strtold_l
# define __STRTOF ____new_strtold_l # define __STRTOF ____new_strtold_l
# define ____STRTOF_INTERNAL ____strtold_l_internal # define ____STRTOF_INTERNAL ____strtold_l_internal

View File

@ -790,7 +790,7 @@ __nldbl_strfmon (char *s, size_t maxsize, const char *format, ...)
ssize_t ssize_t
attribute_compat_text_section attribute_compat_text_section
__nldbl___strfmon_l (char *s, size_t maxsize, __locale_t loc, __nldbl___strfmon_l (char *s, size_t maxsize, locale_t loc,
const char *format, ...) const char *format, ...)
{ {
va_list ap; va_list ap;
@ -818,7 +818,7 @@ libc_hidden_def (__nldbl___vstrfmon)
ssize_t ssize_t
attribute_compat_text_section attribute_compat_text_section
__nldbl___vstrfmon_l (char *s, size_t maxsize, __locale_t loc, __nldbl___vstrfmon_l (char *s, size_t maxsize, locale_t loc,
const char *format, va_list ap) const char *format, va_list ap)
{ {
ssize_t res; ssize_t res;

View File

@ -2,7 +2,7 @@
ssize_t ssize_t
attribute_hidden attribute_hidden
__strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...) __strfmon_l (char *s, size_t maxsize, locale_t loc, const char *format, ...)
{ {
va_list ap; va_list ap;
ssize_t res; ssize_t res;

View File

@ -8,11 +8,11 @@
extern double extern double
__strtod_l (const char *__restrict __nptr, char **__restrict __endptr, __strtod_l (const char *__restrict __nptr, char **__restrict __endptr,
__locale_t __loc); locale_t __loc);
double double
attribute_hidden attribute_hidden
__strtold_l (const char *nptr, char **endptr, __locale_t loc) __strtold_l (const char *nptr, char **endptr, locale_t loc)
{ {
return __strtod_l (nptr, endptr, loc); return __strtod_l (nptr, endptr, loc);
} }

View File

@ -6,7 +6,7 @@
double double
attribute_hidden attribute_hidden
__wcstold_l (const wchar_t *nptr, wchar_t **endptr, __locale_t loc) __wcstold_l (const wchar_t *nptr, wchar_t **endptr, locale_t loc)
{ {
return __wcstod_l (nptr, endptr, loc); return __wcstod_l (nptr, endptr, loc);
} }

View File

@ -24,7 +24,7 @@
or if defined USE_IN_EXTENDED_LOCALE_MODEL: or if defined USE_IN_EXTENDED_LOCALE_MODEL:
int [r3] strcasecmp_l (const char *s1 [r3], const char *s2 [r4], int [r3] strcasecmp_l (const char *s1 [r3], const char *s2 [r4],
__locale_t loc [r5]) */ locale_t loc [r5]) */
#ifndef STRCMP #ifndef STRCMP
# define __STRCMP __strcasecmp # define __STRCMP __strcasecmp

View File

@ -24,7 +24,7 @@
or if defined USE_IN_EXTENDED_LOCALE_MODEL: or if defined USE_IN_EXTENDED_LOCALE_MODEL:
int [r3] strcasecmp_l (const char *s1 [r3], const char *s2 [r4], int [r3] strcasecmp_l (const char *s1 [r3], const char *s2 [r4],
__locale_t loc [r5]) */ locale_t loc [r5]) */
#ifndef STRCMP #ifndef STRCMP
# define __STRCMP __strcasecmp # define __STRCMP __strcasecmp

View File

@ -1,7 +1,7 @@
#include <string.h> #include <string.h>
extern int __strcasecmp_l_nonascii (const char *__s1, const char *__s2, extern int __strcasecmp_l_nonascii (const char *__s1, const char *__s2,
__locale_t __loc); locale_t __loc);
#define __strcasecmp_l __strcasecmp_l_nonascii #define __strcasecmp_l __strcasecmp_l_nonascii
#define USE_IN_EXTENDED_LOCALE_MODEL 1 #define USE_IN_EXTENDED_LOCALE_MODEL 1

View File

@ -1,7 +1,7 @@
#include <string.h> #include <string.h>
extern int __strncasecmp_l_nonascii (const char *__s1, const char *__s2, extern int __strncasecmp_l_nonascii (const char *__s1, const char *__s2,
size_t __n, __locale_t __loc); size_t __n, locale_t __loc);
#define __strncasecmp_l __strncasecmp_l_nonascii #define __strncasecmp_l __strncasecmp_l_nonascii
#define USE_IN_EXTENDED_LOCALE_MODEL 1 #define USE_IN_EXTENDED_LOCALE_MODEL 1

View File

@ -284,7 +284,7 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */
# undef _NL_CURRENT # undef _NL_CURRENT
# define _NL_CURRENT(category, item) \ # define _NL_CURRENT(category, item) \
(current->values[_NL_ITEM_INDEX (item)].string) (current->values[_NL_ITEM_INDEX (item)].string)
# define LOCALE_PARAM , __locale_t loc # define LOCALE_PARAM , locale_t loc
# define LOCALE_ARG , loc # define LOCALE_ARG , loc
# define HELPER_LOCALE_ARG , current # define HELPER_LOCALE_ARG , current
#else #else

View File

@ -181,7 +181,7 @@ static const unsigned short int __mon_yday[2][13] =
# undef _NL_CURRENT_WORD # undef _NL_CURRENT_WORD
# define _NL_CURRENT_WORD(category, item) \ # define _NL_CURRENT_WORD(category, item) \
(current->values[_NL_ITEM_INDEX (item)].word) (current->values[_NL_ITEM_INDEX (item)].word)
# define LOCALE_PARAM , __locale_t locale # define LOCALE_PARAM , locale_t locale
# define LOCALE_ARG , locale # define LOCALE_ARG , locale
# define HELPER_LOCALE_ARG , current # define HELPER_LOCALE_ARG , current
# define ISSPACE(Ch) __isspace_l (Ch, locale) # define ISSPACE(Ch) __isspace_l (Ch, locale)

View File

@ -104,13 +104,13 @@ extern char *strptime (const char *__restrict __s,
extern size_t strftime_l (char *__restrict __s, size_t __maxsize, extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
const char *__restrict __format, const char *__restrict __format,
const struct tm *__restrict __tp, const struct tm *__restrict __tp,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
#endif #endif
#ifdef __USE_GNU #ifdef __USE_GNU
extern char *strptime_l (const char *__restrict __s, extern char *strptime_l (const char *__restrict __s,
const char *__restrict __fmt, struct tm *__tp, const char *__restrict __fmt, struct tm *__tp,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
#endif #endif

View File

@ -38,7 +38,7 @@
size_t size_t
attribute_hidden attribute_hidden
__mbsrtowcs_l (wchar_t *dst, const char **src, size_t len, mbstate_t *ps, __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len, mbstate_t *ps,
__locale_t l) locale_t l)
{ {
struct __gconv_step_data data; struct __gconv_step_data data;
size_t result; size_t result;

View File

@ -120,10 +120,10 @@ extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
/* Similar to the two functions above but take the information from /* Similar to the two functions above but take the information from
the provided locale and not the global locale. */ the provided locale and not the global locale. */
extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
size_t __n, __locale_t __loc) __THROW; size_t __n, locale_t __loc) __THROW;
#endif #endif
/* Compare S1 and S2, both interpreted as appropriate to the /* Compare S1 and S2, both interpreted as appropriate to the
@ -142,13 +142,13 @@ extern size_t wcsxfrm (wchar_t *__restrict __s1,
/* Compare S1 and S2, both interpreted as appropriate to the /* Compare S1 and S2, both interpreted as appropriate to the
LC_COLLATE category of the given locale. */ LC_COLLATE category of the given locale. */
extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
/* Transform S2 into array pointed to by S1 such that if wcscmp is /* Transform S2 into array pointed to by S1 such that if wcscmp is
applied to two transformed strings the result is the as applying applied to two transformed strings the result is the as applying
`wcscoll' to the original strings. */ `wcscoll' to the original strings. */
extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
size_t __n, __locale_t __loc) __THROW; size_t __n, locale_t __loc) __THROW;
/* Duplicate S, returning an identical malloc'd string. */ /* Duplicate S, returning an identical malloc'd string. */
extern wchar_t *wcsdup (const wchar_t *__s) __THROW __attribute_malloc__; extern wchar_t *wcsdup (const wchar_t *__s) __THROW __attribute_malloc__;
@ -441,39 +441,39 @@ extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
by the POSIX.1-2008 extended locale API. */ by the POSIX.1-2008 extended locale API. */
extern long int wcstol_l (const wchar_t *__restrict __nptr, extern long int wcstol_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base, wchar_t **__restrict __endptr, int __base,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, wchar_t **__restrict __endptr,
int __base, __locale_t __loc) __THROW; int __base, locale_t __loc) __THROW;
__extension__ __extension__
extern long long int wcstoll_l (const wchar_t *__restrict __nptr, extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, wchar_t **__restrict __endptr,
int __base, __locale_t __loc) __THROW; int __base, locale_t __loc) __THROW;
__extension__ __extension__
extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, wchar_t **__restrict __endptr,
int __base, __locale_t __loc) int __base, locale_t __loc)
__THROW; __THROW;
extern double wcstod_l (const wchar_t *__restrict __nptr, extern double wcstod_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, __locale_t __loc) wchar_t **__restrict __endptr, locale_t __loc)
__THROW; __THROW;
extern float wcstof_l (const wchar_t *__restrict __nptr, extern float wcstof_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, __locale_t __loc) wchar_t **__restrict __endptr, locale_t __loc)
__THROW; __THROW;
extern long double wcstold_l (const wchar_t *__restrict __nptr, extern long double wcstold_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, wchar_t **__restrict __endptr,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
# if __HAVE_FLOAT128 # if __HAVE_FLOAT128
extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr, extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, wchar_t **__restrict __endptr,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
# endif # endif
#endif /* use GNU */ #endif /* use GNU */
@ -775,7 +775,7 @@ extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
const wchar_t *__restrict __format, const wchar_t *__restrict __format,
const struct tm *__restrict __tp, const struct tm *__restrict __tp,
__locale_t __loc) __THROW; locale_t __loc) __THROW;
# endif # endif
/* Define some macros helping to catch buffer overflows. */ /* Define some macros helping to catch buffer overflows. */

View File

@ -35,7 +35,7 @@
#endif #endif
#ifdef USE_IN_EXTENDED_LOCALE_MODEL #ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define LOCALE_PARAM , __locale_t loc # define LOCALE_PARAM , locale_t loc
#else #else
# define LOCALE_PARAM # define LOCALE_PARAM
#endif #endif

View File

@ -37,7 +37,7 @@
#endif #endif
#ifdef USE_IN_EXTENDED_LOCALE_MODEL #ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define LOCALE_PARAM , __locale_t loc # define LOCALE_PARAM , locale_t loc
#else #else
# define LOCALE_PARAM # define LOCALE_PARAM
#endif #endif

View File

@ -23,6 +23,6 @@
#define USE_WIDE_CHAR 1 #define USE_WIDE_CHAR 1
extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int, extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#include <stdlib/strtod.c> #include <stdlib/strtod.c>

View File

@ -22,7 +22,7 @@
extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int, extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#define USE_WIDE_CHAR 1 #define USE_WIDE_CHAR 1

View File

@ -22,6 +22,6 @@
#define USE_WIDE_CHAR 1 #define USE_WIDE_CHAR 1
extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int, extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#include <stdlib/strtof.c> #include <stdlib/strtof.c>

View File

@ -24,6 +24,6 @@
#define USE_WIDE_CHAR 1 #define USE_WIDE_CHAR 1
extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int, extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#include <stdlib/strtof_l.c> #include <stdlib/strtof_l.c>

View File

@ -24,6 +24,6 @@
#define USE_WIDE_CHAR 1 #define USE_WIDE_CHAR 1
extern long int ____wcstol_l_internal (const wchar_t *, wchar_t **, int, int, extern long int ____wcstol_l_internal (const wchar_t *, wchar_t **, int, int,
__locale_t); locale_t);
#include <stdlib/strtol_l.c> #include <stdlib/strtol_l.c>

View File

@ -22,6 +22,6 @@
#define USE_WIDE_CHAR 1 #define USE_WIDE_CHAR 1
extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int, extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#include <stdlib/strtold.c> #include <stdlib/strtold.c>

View File

@ -23,6 +23,6 @@
#define USE_WIDE_CHAR 1 #define USE_WIDE_CHAR 1
extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int, extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
__locale_t); locale_t);
#include <strtold_l.c> #include <strtold_l.c>

View File

@ -24,6 +24,6 @@
#define QUAD 1 #define QUAD 1
extern long long int ____wcstoll_l_internal (const wchar_t *, wchar_t **, extern long long int ____wcstoll_l_internal (const wchar_t *, wchar_t **,
int, int, __locale_t); int, int, locale_t);
#include <wcstol_l.c> #include <wcstol_l.c>

View File

@ -24,6 +24,6 @@
#define UNSIGNED 1 #define UNSIGNED 1
extern unsigned long int ____wcstoul_l_internal (const wchar_t *, wchar_t **, extern unsigned long int ____wcstoul_l_internal (const wchar_t *, wchar_t **,
int, int, __locale_t); int, int, locale_t);
#include "wcstol_l.c" #include "wcstol_l.c"

View File

@ -25,6 +25,6 @@
extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
wchar_t **, int, int, wchar_t **, int, int,
__locale_t); locale_t);
#include <wcstoll_l.c> #include <wcstoll_l.c>

View File

@ -24,7 +24,7 @@
int int
__iswctype_l (wint_t wc, wctype_t desc, __locale_t locale) __iswctype_l (wint_t wc, wctype_t desc, locale_t locale)
{ {
/* If the user passes in an invalid DESC valid (the one returned from /* If the user passes in an invalid DESC valid (the one returned from
`__wctype_l' in case of an error) simply return 0. */ `__wctype_l' in case of an error) simply return 0. */

View File

@ -23,7 +23,7 @@
#include "wchar-lookup.h" #include "wchar-lookup.h"
wint_t wint_t
__towctrans_l (wint_t wc, wctrans_t desc, __locale_t locale) __towctrans_l (wint_t wc, wctrans_t desc, locale_t locale)
{ {
/* If the user passes in an invalid DESC valid (the one returned from /* If the user passes in an invalid DESC valid (the one returned from
`__wctrans_l' in case of an error) simply return the value. */ `__wctrans_l' in case of an error) simply return the value. */

View File

@ -27,7 +27,7 @@
/* Provide real-function versions of all the wctype macros. */ /* Provide real-function versions of all the wctype macros. */
#define func(name, type) \ #define func(name, type) \
int __isw##name (wint_t wc, __locale_t locale) \ int __isw##name (wint_t wc, locale_t locale) \
{ \ { \
if (isascii (wc)) \ if (isascii (wc)) \
return is##name ((int) wc, locale); \ return is##name ((int) wc, locale); \
@ -54,7 +54,7 @@ func (upper_l, __ISwupper)
func (xdigit_l, __ISwxdigit) func (xdigit_l, __ISwxdigit)
wint_t wint_t
(__towlower_l) (wint_t wc, __locale_t locale) (__towlower_l) (wint_t wc, locale_t locale)
{ {
size_t i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + __TOW_tolower; size_t i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + __TOW_tolower;
const char *desc = locale->__locales[LC_CTYPE]->values[i].string; const char *desc = locale->__locales[LC_CTYPE]->values[i].string;
@ -64,7 +64,7 @@ libc_hidden_def (__towlower_l)
weak_alias (__towlower_l, towlower_l) weak_alias (__towlower_l, towlower_l)
wint_t wint_t
(__towupper_l) (wint_t wc, __locale_t locale) (__towupper_l) (wint_t wc, locale_t locale)
{ {
size_t i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + __TOW_toupper; size_t i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + __TOW_toupper;
const char *desc = locale->__locales[LC_CTYPE]->values[i].string; const char *desc = locale->__locales[LC_CTYPE]->values[i].string;

View File

@ -21,7 +21,7 @@
#include "../locale/localeinfo.h" #include "../locale/localeinfo.h"
wctrans_t wctrans_t
__wctrans_l (const char *property, __locale_t locale) __wctrans_l (const char *property, locale_t locale)
{ {
const char *names; const char *names;
size_t cnt; size_t cnt;

View File

@ -60,66 +60,66 @@ extern wint_t towctrans (wint_t __wc, wctrans_t __desc) __THROW;
/* Test for any wide character for which `iswalpha' or `iswdigit' is /* Test for any wide character for which `iswalpha' or `iswdigit' is
true. */ true. */
extern int iswalnum_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswalnum_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character for which `iswupper' or 'iswlower' is /* Test for any wide character for which `iswupper' or 'iswlower' is
true, or any wide character that is one of a locale-specific set of true, or any wide character that is one of a locale-specific set of
wide-characters for which none of `iswcntrl', `iswdigit', wide-characters for which none of `iswcntrl', `iswdigit',
`iswpunct', or `iswspace' is true. */ `iswpunct', or `iswspace' is true. */
extern int iswalpha_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswalpha_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any control wide character. */ /* Test for any control wide character. */
extern int iswcntrl_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswcntrl_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character that corresponds to a decimal-digit /* Test for any wide character that corresponds to a decimal-digit
character. */ character. */
extern int iswdigit_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswdigit_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character for which `iswprint' is true and /* Test for any wide character for which `iswprint' is true and
`iswspace' is false. */ `iswspace' is false. */
extern int iswgraph_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswgraph_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character that corresponds to a lowercase letter /* Test for any wide character that corresponds to a lowercase letter
or is one of a locale-specific set of wide characters for which or is one of a locale-specific set of wide characters for which
none of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */ none of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */
extern int iswlower_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswlower_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any printing wide character. */ /* Test for any printing wide character. */
extern int iswprint_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswprint_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any printing wide character that is one of a /* Test for any printing wide character that is one of a
locale-specific et of wide characters for which neither `iswspace' locale-specific et of wide characters for which neither `iswspace'
nor `iswalnum' is true. */ nor `iswalnum' is true. */
extern int iswpunct_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswpunct_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character that corresponds to a locale-specific /* Test for any wide character that corresponds to a locale-specific
set of wide characters for which none of `iswalnum', `iswgraph', or set of wide characters for which none of `iswalnum', `iswgraph', or
`iswpunct' is true. */ `iswpunct' is true. */
extern int iswspace_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswspace_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character that corresponds to an uppercase letter /* Test for any wide character that corresponds to an uppercase letter
or is one of a locale-specific set of wide character for which none or is one of a locale-specific set of wide character for which none
of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */ of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */
extern int iswupper_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswupper_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character that corresponds to a hexadecimal-digit /* Test for any wide character that corresponds to a hexadecimal-digit
character equivalent to that performed be the functions described character equivalent to that performed be the functions described
in the previous subclause. */ in the previous subclause. */
extern int iswxdigit_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswxdigit_l (wint_t __wc, locale_t __locale) __THROW;
/* Test for any wide character that corresponds to a standard blank /* Test for any wide character that corresponds to a standard blank
wide character or a locale-specific set of wide characters for wide character or a locale-specific set of wide characters for
which `iswalnum' is false. */ which `iswalnum' is false. */
extern int iswblank_l (wint_t __wc, __locale_t __locale) __THROW; extern int iswblank_l (wint_t __wc, locale_t __locale) __THROW;
/* Construct value that describes a class of wide characters identified /* Construct value that describes a class of wide characters identified
by the string argument PROPERTY. */ by the string argument PROPERTY. */
extern wctype_t wctype_l (const char *__property, __locale_t __locale) extern wctype_t wctype_l (const char *__property, locale_t __locale)
__THROW; __THROW;
/* Determine whether the wide-character WC has the property described by /* Determine whether the wide-character WC has the property described by
DESC. */ DESC. */
extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale) extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale)
__THROW; __THROW;
/* /*
@ -127,19 +127,19 @@ extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale)
*/ */
/* Converts an uppercase letter to the corresponding lowercase letter. */ /* Converts an uppercase letter to the corresponding lowercase letter. */
extern wint_t towlower_l (wint_t __wc, __locale_t __locale) __THROW; extern wint_t towlower_l (wint_t __wc, locale_t __locale) __THROW;
/* Converts an lowercase letter to the corresponding uppercase letter. */ /* Converts an lowercase letter to the corresponding uppercase letter. */
extern wint_t towupper_l (wint_t __wc, __locale_t __locale) __THROW; extern wint_t towupper_l (wint_t __wc, locale_t __locale) __THROW;
/* Construct value that describes a mapping between wide characters /* Construct value that describes a mapping between wide characters
identified by the string argument PROPERTY. */ identified by the string argument PROPERTY. */
extern wctrans_t wctrans_l (const char *__property, __locale_t __locale) extern wctrans_t wctrans_l (const char *__property, locale_t __locale)
__THROW; __THROW;
/* Map the wide character WC using the mapping described by DESC. */ /* Map the wide character WC using the mapping described by DESC. */
extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc,
__locale_t __locale) __THROW; locale_t __locale) __THROW;
# endif /* Use POSIX 2008. */ # endif /* Use POSIX 2008. */

View File

@ -23,7 +23,7 @@
#include <locale/localeinfo.h> #include <locale/localeinfo.h>
wctype_t wctype_t
__wctype_l (const char *property, __locale_t locale) __wctype_l (const char *property, locale_t locale)
{ {
const char *names; const char *names;
unsigned int result; unsigned int result;