From ccadf7b5346a3e21c692dfcbfcf38a63433bc36a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 14 Mar 2004 21:12:06 +0000 Subject: Update. 2004-03-14 Ulrich Drepper Make the non-_l functions wrappers around the _l functions. * include/monetary.h: Declare __vstrmon_l. * include/string.h: Add libc_hidden_proto for __strcoll_l and __strxfrm_l. * include/time.h: Define ptime_locale_status. Declare __strptime_internal. * include/wchar.h: Add libc_hidden_proto for __wcscoll_l and __wcsxfrm_l. * stdlib/strfmon.c: Move the code to strfmon_l.c. Add little wrapper around __vstrfmon_l. * stdlib/strfmon_l.c: Add real implementation. Split into new function __vstrfmon_l to allow calling it from strfmon. * stdlib/strtod.c: Move real code to strtod_l.c and add wrapper. * stdlib/strtod_l.c: Add real implementation. * stdlib/strtof.c: Adjust to changed strtod.c. * stdlib/strtof_l.c: Include strtod_l.c now. * stdlib/strtold.c: New file. * stdlib/strtold_l.c: Removed. * string/strcoll.c: Move real code to strcoll_l.c: Add wrapper. * string/strcoll_l.c: Add real implementation. * string/strxfrm.c: Move real code to strxfrm_l.c: Add wrapper. * string/strxfrm_l.c: Add real implementation. * sysdeps/generic/strtol.c: Move real implementation to strtol_l.c. Add wrappers. * sysdeps/generic/strtol_l.c: Add real implementation. * sysdeps/generic/strtold.c: Removed. * sysdeps/generic/strtold_l.c: New file. * sysdeps/generic/strtoll_l.c: Include strtol_l.c now. Adjust #defines. * sysdeps/generic/strtoul_l.c: Likewise. * sysdeps/generic/strtoull_l.c: Likewise. * sysdeps/generic/wcstol_l.c: Likewise. * sysdeps/generic/wcstoll_l.c: Likewise. * sysdeps/generic/wcstoul_l.c: Likewise. * sysdeps/generic/wcstoull_l.c: Likewise. * sysdeps/ieee754/ldbl-128/strtold.c: Removed. * sysdeps/ieee754/ldbl-128/strtold_l.c: New file. * sysdeps/ieee754/ldbl-96/strtold.c: Removed. * sysdeps/ieee754/ldbl-96/strtold_l.c: New file. * sysdeps/m68k/strtold.c: Removed. * sysdeps/m68k/strtold_l.c: New file. * time/strftime.c: Move real code to strftime_l.c. Add wrapper. * time/strftime_l.c: Add real implementation. * time/strptime.c: Move real code to strptime_l.c. Add wrapper. * time/strptime_l.c: Add real implementation. * time/wcsftime.c: Simplify since only wrappers are defined in strftime.c. * time/wcsftime_l.c: Include strftime_l.c. * wcsmbs/wcscoll.c: Simplify since the file is not used by wcscoll_l.c anymore. * wcsmbs/wcscoll_l.c: Include strcoll_l.c. * wcsmbs/wcsxfrm.c: Simplify since the file is not used by wcsxfrm_l.c anymore. * wcsmbs/wcsxfrm_l.c: Include strxfrm_l.c. * wcsmbs/wcstod.c: Prepare to include new strtod.c. * wcsmbs/wcstod_l.c: Include strtod_l.c. * wcsmbs/wcstof.c: Prepare to include new strtof.c. * wcsmbs/wcstof_l.c: Include strtof_l.c. * wcsmbs/wcstold.c: Prepare to include new strtold.c. * wcsmbs/wcstold_l.c: Include strtold_l.c. * locale/uselocale.c: Use _NL_CURRENT_LOCALE instead of __libc_tsd_get. * sysdeps/generic/strcasecmp.c: Optimize a bit. It's better to get a reference to the current locale and then use the _l functions. * sysdeps/generic/strncase.c: Likewise. --- wcsmbs/wcscoll.c | 15 +++------------ wcsmbs/wcscoll_l.c | 19 ++++++++++++++++--- wcsmbs/wcstod.c | 8 ++++++-- wcsmbs/wcstod_l.c | 10 ++++------ wcsmbs/wcstof.c | 29 +++++++---------------------- wcsmbs/wcstof_l.c | 12 +++++------- wcsmbs/wcstold.c | 48 +++++++----------------------------------------- wcsmbs/wcstold_l.c | 32 ++++---------------------------- wcsmbs/wcsxfrm.c | 17 +++-------------- wcsmbs/wcsxfrm_l.c | 19 ++++++++++++++++--- 10 files changed, 71 insertions(+), 138 deletions(-) (limited to 'wcsmbs') diff --git a/wcsmbs/wcscoll.c b/wcsmbs/wcscoll.c index 40bd584e8b..ed6db06e4e 100644 --- a/wcsmbs/wcscoll.c +++ b/wcsmbs/wcscoll.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1996,1997,1999,2000,2001,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -22,17 +22,8 @@ #define STRING_TYPE wchar_t #define USTRING_TYPE wint_t -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define STRCOLL __wcscoll_l -#else -# define STRCOLL __wcscoll -#endif -#define STRCMP wcscmp -#define STRLEN __wcslen -#define WEIGHT_H "../locale/weightwc.h" -#define SUFFIX WC -#define L(arg) L##arg -#define WIDE_CHAR_VERSION 1 +#define STRCOLL __wcscoll +#define STRCOLL_L __wcscoll_l #include "../string/strcoll.c" diff --git a/wcsmbs/wcscoll_l.c b/wcsmbs/wcscoll_l.c index 20007b29c9..04b0bf3649 100644 --- a/wcsmbs/wcscoll_l.c +++ b/wcsmbs/wcscoll_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -17,7 +17,20 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define USE_IN_EXTENDED_LOCALE_MODEL 1 -#include + +#include +#include "../locale/coll-lookup.h" + +#define STRING_TYPE wchar_t +#define USTRING_TYPE wint_t +#define STRCOLL __wcscoll_l +#define STRCMP wcscmp +#define STRLEN __wcslen +#define WEIGHT_H "../locale/weightwc.h" +#define SUFFIX WC +#define L(arg) L##arg +#define WIDE_CHAR_VERSION 1 + +#include "../string/strcoll_l.c" weak_alias (__wcscoll_l, wcscoll_l) diff --git a/wcsmbs/wcstod.c b/wcsmbs/wcstod.c index 5a39091c25..74fd557db6 100644 --- a/wcsmbs/wcstod.c +++ b/wcsmbs/wcstod.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -17,9 +17,13 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include +#include -/* The actual implementation for all floating point sizes is in strtod.c. */ #define USE_WIDE_CHAR 1 +extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int, + __locale_t); + #include diff --git a/wcsmbs/wcstod_l.c b/wcsmbs/wcstod_l.c index 87f3a8f7bc..86ec18e6d5 100644 --- a/wcsmbs/wcstod_l.c +++ b/wcsmbs/wcstod_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to integer value, using given locale. - Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -18,11 +18,9 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define __need_wchar_t #include -#include +#include -#define USE_IN_EXTENDED_LOCALE_MODEL 1 extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int, __locale_t); @@ -30,6 +28,6 @@ extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, wchar_t **, int, int, __locale_t); -#include +#define USE_WIDE_CHAR 1 -weak_alias (__wcstod_l, wcstod_l) +#include diff --git a/wcsmbs/wcstof.c b/wcsmbs/wcstof.c index 02f91ef904..2d2fca3fde 100644 --- a/wcsmbs/wcstof.c +++ b/wcsmbs/wcstof.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -17,27 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include +#include -/* The actual implementation for all floating point sizes is in strtod.c. - These macros tell it to produce the `float' version, `wcstof'. */ - -#define FLOAT float -#define FLT FLT -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define STRTOF __wcstof_l -#else -# define STRTOF wcstof -#endif -#define MPN2FLOAT __mpn_construct_float -#define FLOAT_HUGE_VAL HUGE_VALF #define USE_WIDE_CHAR 1 -#define SET_MANTISSA(flt, mant) \ - do { union ieee754_float u; \ - u.f = (flt); \ - if ((mant & 0x7fffff) == 0) \ - mant = 0x400000; \ - u.ieee.mantissa = (mant) & 0x7fffff; \ - (flt) = u.f; \ - } while (0) -#include +extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int, + __locale_t); + +#include diff --git a/wcsmbs/wcstof_l.c b/wcsmbs/wcstof_l.c index 542961e1fe..0ed31e0c7b 100644 --- a/wcsmbs/wcstof_l.c +++ b/wcsmbs/wcstof_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to integer value, using given locale. - Copyright (C) 1997,98,2002 Free Software Foundation, Inc. + Copyright (C) 1997,98,2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -18,11 +18,11 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define __need_wchar_t #include -#include +#include -#define USE_IN_EXTENDED_LOCALE_MODEL 1 + +#define USE_WIDE_CHAR 1 extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int, __locale_t); @@ -30,6 +30,4 @@ extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, wchar_t **, int, int, __locale_t); -#include - -weak_alias (__wcstof_l, wcstof_l) +#include diff --git a/wcsmbs/wcstold.c b/wcsmbs/wcstold.c index 5c58aa69e6..d99b7278b9 100644 --- a/wcsmbs/wcstold.c +++ b/wcsmbs/wcstold.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -17,46 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include -#include +#include +#include -#ifndef __NO_LONG_DOUBLE_MATH -/* The actual implementation for all floating point sizes is in strtod.c. - These macros tell it to produce the `long double' version, `wcstold'. */ +#define USE_WIDE_CHAR 1 -# define FLOAT long double -# define FLT LDBL -# ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define STRTOF __wcstold_l -# else -# define STRTOF wcstold -# endif -# define MPN2FLOAT __mpn_construct_long_double -# define FLOAT_HUGE_VAL HUGE_VALL -# define USE_WIDE_CHAR 1 -# define SET_MANTISSA(flt, mant) \ - do { union ieee854_long_double u; \ - u.d = (flt); \ - if ((mant & 0x7fffffffffffffffULL) == 0) \ - mant = 0x4000000000000000ULL; \ - u.ieee.mantissa0 = (((mant) >> 32) & 0x7fffffff) | 0x80000000; \ - u.ieee.mantissa1 = (mant) & 0xffffffff; \ - (flt) = u.d; \ - } while (0) +extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int, + __locale_t); -# include -#else -/* There is no `long double' type, use the `double' implementations. */ -long double -__wcstold_internal (const wchar_t *nptr, wchar_t **endptr, int group) -{ - return __wcstod_internal (nptr, endptr, group); -} -libc_hidden_def (__wcstold_internal) - -long double -wcstold (const wchar_t *nptr, wchar_t **endptr) -{ - return __wcstod_internal (nptr, endptr, 0); -} -#endif +#include diff --git a/wcsmbs/wcstold_l.c b/wcsmbs/wcstold_l.c index 91a92124cf..9526645f10 100644 --- a/wcsmbs/wcstold_l.c +++ b/wcsmbs/wcstold_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to integer value, using given locale. - Copyright (C) 1997,98,99,2002 Free Software Foundation, Inc. + Copyright (C) 1997,98,99,2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -18,15 +18,10 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define __need_wchar_t -#include #include -#include -#include +#include -#define USE_IN_EXTENDED_LOCALE_MODEL 1 - -#ifndef __NO_LONG_DOUBLE_MATH +#define USE_WIDE_CHAR 1 extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int, __locale_t); @@ -34,23 +29,4 @@ extern unsigned long long int ____wcstoull_l_internal (const wchar_t *, wchar_t **, int, int, __locale_t); -# include -#else -/* There is no `long double' type, use the `double' implementations. */ -extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int, - __locale_t); -long double -____wcstold_l_internal (const wchar_t *nptr, wchar_t **endptr, int group, - __locale_t loc) -{ - return ____wcstod_l_internal (nptr, endptr, group, loc); -} - -long double -__wcstold_l (const wchar_t *nptr, wchar_t **endptr, __locale_t loc) -{ - return ____wcstod_l_internal (nptr, endptr, 0, loc); -} -#endif - -weak_alias (__wcstold_l, wcstold_l) +#include diff --git a/wcsmbs/wcsxfrm.c b/wcsmbs/wcsxfrm.c index 10f3d72673..9e7d10389b 100644 --- a/wcsmbs/wcsxfrm.c +++ b/wcsmbs/wcsxfrm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -21,18 +21,7 @@ #include "../locale/coll-lookup.h" #define STRING_TYPE wchar_t -#define USTRING_TYPE wint_t -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define STRXFRM __wcsxfrm_l -#else -# define STRXFRM wcsxfrm -#endif -#define STRCMP wcscmp -#define STRLEN __wcslen -#define STPNCPY __wcpncpy -#define WEIGHT_H "../locale/weightwc.h" -#define SUFFIX WC -#define L(arg) L##arg -#define WIDE_CHAR_VERSION 1 +#define STRXFRM wcsxfrm +#define STRXFRM_L __wcsxfrm_l #include "../string/strxfrm.c" diff --git a/wcsmbs/wcsxfrm_l.c b/wcsmbs/wcsxfrm_l.c index 13046237a9..de9fc93153 100644 --- a/wcsmbs/wcsxfrm_l.c +++ b/wcsmbs/wcsxfrm_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996,97,2002 Free Software Foundation, Inc. +/* Copyright (C) 1996,97,2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -17,7 +17,20 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define USE_IN_EXTENDED_LOCALE_MODEL 1 -#include +#include +#include "../locale/coll-lookup.h" + +#define STRING_TYPE wchar_t +#define USTRING_TYPE wint_t +#define STRXFRM __wcsxfrm_l +#define STRCMP wcscmp +#define STRLEN __wcslen +#define STPNCPY __wcpncpy +#define WEIGHT_H "../locale/weightwc.h" +#define SUFFIX WC +#define L(arg) L##arg +#define WIDE_CHAR_VERSION 1 + +#include "../string/strxfrm_l.c" weak_alias (__wcsxfrm_l, wcsxfrm_l) -- cgit v1.2.3