summaryrefslogtreecommitdiff
path: root/wcsmbs
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-14 21:12:06 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-14 21:12:06 +0000
commitccadf7b5346a3e21c692dfcbfcf38a63433bc36a (patch)
treea1e826af3345eee581925387513b1b6c76629c31 /wcsmbs
parent3bc9b83f49805969b7d139b52ef6b003e5136354 (diff)
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.c15
-rw-r--r--wcsmbs/wcscoll_l.c19
-rw-r--r--wcsmbs/wcstod.c8
-rw-r--r--wcsmbs/wcstod_l.c10
-rw-r--r--wcsmbs/wcstof.c29
-rw-r--r--wcsmbs/wcstof_l.c12
-rw-r--r--wcsmbs/wcstold.c48
-rw-r--r--wcsmbs/wcstold_l.c32
-rw-r--r--wcsmbs/wcsxfrm.c17
-rw-r--r--wcsmbs/wcsxfrm_l.c19
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)