mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-26 23:10:06 +00:00
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:
parent
f0be25b633
commit
af85385f31
76
ChangeLog
76
ChangeLog
@ -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>
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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) \
|
||||||
|
@ -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];
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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 */
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
@ -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"
|
||||||
|
@ -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>
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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];
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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. */
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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"
|
||||||
|
@ -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>
|
||||||
|
@ -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. */
|
||||||
|
@ -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. */
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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. */
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user