diff options
Diffstat (limited to 'REORG.TODO/stdlib/strtod.c')
-rw-r--r-- | REORG.TODO/stdlib/strtod.c | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/REORG.TODO/stdlib/strtod.c b/REORG.TODO/stdlib/strtod.c new file mode 100644 index 0000000000..2ac1b2e57a --- /dev/null +++ b/REORG.TODO/stdlib/strtod.c @@ -0,0 +1,80 @@ +/* Read decimal floating point numbers. + This file is part of the GNU C Library. + Copyright (C) 1995-2017 Free Software Foundation, Inc. + Contributed by Ulrich Drepper <drepper@gnu.org>, 1995. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <stdlib.h> +#include <wchar.h> +#include <locale/localeinfo.h> + + +#ifndef FLOAT +# include <math_ldbl_opt.h> +# define FLOAT double +# ifdef USE_WIDE_CHAR +# define STRTOF wcstod +# define STRTOF_L __wcstod_l +# else +# define STRTOF strtod +# define STRTOF_L __strtod_l +# endif +#endif + +#ifdef USE_WIDE_CHAR +# include <wctype.h> +# define STRING_TYPE wchar_t +#else +# define STRING_TYPE char +#endif + +#define INTERNAL(x) INTERNAL1(x) +#define INTERNAL1(x) __##x##_internal + + +FLOAT +INTERNAL (STRTOF) (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group) +{ + return INTERNAL(STRTOF_L) (nptr, endptr, group, _NL_CURRENT_LOCALE); +} +#if defined _LIBC +libc_hidden_def (INTERNAL (STRTOF)) +#endif + + +FLOAT +#ifdef weak_function +weak_function +#endif +STRTOF (const STRING_TYPE *nptr, STRING_TYPE **endptr) +{ + return INTERNAL(STRTOF_L) (nptr, endptr, 0, _NL_CURRENT_LOCALE); +} +#if defined _LIBC +libc_hidden_def (STRTOF) +#endif + +#ifdef LONG_DOUBLE_COMPAT +# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +# ifdef USE_WIDE_CHAR +compat_symbol (libc, wcstod, wcstold, GLIBC_2_0); +compat_symbol (libc, __wcstod_internal, __wcstold_internal, GLIBC_2_0); +# else +compat_symbol (libc, strtod, strtold, GLIBC_2_0); +compat_symbol (libc, __strtod_internal, __strtold_internal, GLIBC_2_0); +# endif +# endif +#endif |