diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-03-14 21:12:06 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-03-14 21:12:06 +0000 |
commit | ccadf7b5346a3e21c692dfcbfcf38a63433bc36a (patch) | |
tree | a1e826af3345eee581925387513b1b6c76629c31 /wcsmbs | |
parent | 3bc9b83f49805969b7d139b52ef6b003e5136354 (diff) | |
download | glibc-ccadf7b5346a3e21c692dfcbfcf38a63433bc36a.tar glibc-ccadf7b5346a3e21c692dfcbfcf38a63433bc36a.tar.gz glibc-ccadf7b5346a3e21c692dfcbfcf38a63433bc36a.tar.bz2 glibc-ccadf7b5346a3e21c692dfcbfcf38a63433bc36a.zip |
Update.
2004-03-14 Ulrich Drepper <drepper@redhat.com>
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.
Diffstat (limited to 'wcsmbs')
-rw-r--r-- | wcsmbs/wcscoll.c | 15 | ||||
-rw-r--r-- | wcsmbs/wcscoll_l.c | 19 | ||||
-rw-r--r-- | wcsmbs/wcstod.c | 8 | ||||
-rw-r--r-- | wcsmbs/wcstod_l.c | 10 | ||||
-rw-r--r-- | wcsmbs/wcstof.c | 29 | ||||
-rw-r--r-- | wcsmbs/wcstof_l.c | 12 | ||||
-rw-r--r-- | wcsmbs/wcstold.c | 48 | ||||
-rw-r--r-- | wcsmbs/wcstold_l.c | 32 | ||||
-rw-r--r-- | wcsmbs/wcsxfrm.c | 17 | ||||
-rw-r--r-- | wcsmbs/wcsxfrm_l.c | 19 |
10 files changed, 71 insertions, 138 deletions
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 <drepper@cygnus.com>, 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 <drepper@gnu.ai.mit.edu>, 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 <wcscoll.c> + +#include <wchar.h> +#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 <drepper@gnu.ai.mit.edu>, 1996. @@ -17,9 +17,13 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <stddef.h> +#include <xlocale.h> -/* 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 <stdlib/strtod.c> 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 <drepper@cygnus.com>, 1997. @@ -18,11 +18,9 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define __need_wchar_t #include <stddef.h> -#include <locale.h> +#include <xlocale.h> -#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 <wcstod.c> +#define USE_WIDE_CHAR 1 -weak_alias (__wcstod_l, wcstod_l) +#include <stdlib/strtod_l.c> 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 <drepper@gnu.ai.mit.edu>, 1996. @@ -17,27 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <stddef.h> +#include <xlocale.h> -/* 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 <stdlib/strtod.c> +extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int, + __locale_t); + +#include <stdlib/strtof.c> 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 <drepper@cygnus.com>, 1997. @@ -18,11 +18,11 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define __need_wchar_t #include <stddef.h> -#include <locale.h> +#include <xlocale.h> -#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 <wcstof.c> - -weak_alias (__wcstof_l, wcstof_l) +#include <stdlib/strtof_l.c> 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 <drepper@gnu.ai.mit.edu>, 1996. @@ -17,46 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include <math.h> -#include <wchar.h> +#include <stddef.h> +#include <xlocale.h> -#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 <stdlib/strtod.c> -#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 <stdlib/strtold.c> 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 <drepper@cygnus.com>, 1997. @@ -18,15 +18,10 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define __need_wchar_t -#include <math.h> #include <stddef.h> -#include <locale.h> -#include <wchar.h> +#include <xlocale.h> -#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 <wcstold.c> -#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 <strtold_l.c> 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 <drepper@cygnus.com>, 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 <drepper@gnu.ai.mit.edu>, 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 <wcsxfrm.c> +#include <wchar.h> +#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) |