aboutsummaryrefslogtreecommitdiff
path: root/REORG.TODO/stdlib/strtod.c
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/stdlib/strtod.c')
-rw-r--r--REORG.TODO/stdlib/strtod.c80
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