diff options
Diffstat (limited to 'stdlib/strtof_l.c')
-rw-r--r-- | stdlib/strtof_l.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/stdlib/strtof_l.c b/stdlib/strtof_l.c index 1187ffc73b..bbc7611e1e 100644 --- a/stdlib/strtof_l.c +++ b/stdlib/strtof_l.c @@ -1,5 +1,5 @@ /* Convert string representing a number to float 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,14 +18,30 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define USE_IN_EXTENDED_LOCALE_MODEL 1 - #include <xlocale.h> extern float ____strtof_l_internal (const char *, char **, int, __locale_t); extern unsigned long long int ____strtoull_l_internal (const char *, char **, int, int, __locale_t); -#include <strtof.c> - -weak_alias (__strtof_l, strtof_l) +#define FLOAT float +#define FLT FLT +#ifdef USE_WIDE_CHAR +# define STRTOF wcstof_l +# define __STRTOF __wcstof_l +#else +# define STRTOF strtof_l +# define __STRTOF __strtof_l +#endif +#define MPN2FLOAT __mpn_construct_float +#define FLOAT_HUGE_VAL HUGE_VALF +#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 "strtod_l.c" |