changeset 17343:201622d6d12f

strtod: support coreutils better * lib/strtod.c (underlying_strtod): Just invoke the underlying strtod. HAVE_RAW_DECL_STRTOD might not be correct in coreutils, which disables the raw decl checks. This assumes there is an underlying strtod, but that's a safe assumption these days.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 19 Feb 2013 14:20:04 -0800
parents e6a6fd004283
children 892b14640382
files ChangeLog lib/strtod.c
diffstat 2 files changed, 9 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2013-02-19  Paul Eggert  <eggert@cs.ucla.edu>
 
+	strtod: support coreutils better
+	* lib/strtod.c (underlying_strtod): Just invoke the underlying strtod.
+	HAVE_RAW_DECL_STRTOD might not be correct in coreutils, which
+	disables the raw decl checks.  This assumes there is an underlying
+	strtod, but that's a safe assumption these days.
+
 	mountlist: port to HP NonStop
 	Reported by Joachim Schmitz in
 	<http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00084.html>.
--- a/lib/strtod.c
+++ b/lib/strtod.c
@@ -344,24 +344,11 @@
   return negative ? -num : num;
 }
 
-/* The "underlying" strtod implementation.  This must be defined
+/* The underlying strtod implementation.  This must be defined
    after strtod because it #undefs strtod.  */
 static double
 underlying_strtod (const char *nptr, char **endptr)
 {
-  if (HAVE_RAW_DECL_STRTOD)
-    {
-      /* Prefer the native strtod if available.  Usually it should
-         work and it should give more-accurate results than our
-         approximation.  */
-      #undef strtod
-      return strtod (nptr, endptr);
-    }
-  else
-    {
-      /* Approximate strtod well enough for this module.  There's no
-         need to handle anything but finite unsigned decimal
-         numbers with nonnull ENDPTR.  */
-      return parse_number (nptr, 10, 10, 1, 'e', endptr);
-    }
+#undef strtod
+  return strtod (nptr, endptr);
 }