*** empty log message ***
[gnulib.git] / lib / c-strtod.c
index c9ebb80..7e03b4a 100644 (file)
@@ -39,8 +39,8 @@
 # define STRTOD_L strtod_l
 #endif
 
-/* c_strtold falls back on strtod if strtold isn't declared.  */
-#if LONG && HAVE_DECL_STRTOLD
+/* c_strtold falls back on strtod if strtold doesn't conform to C99.  */
+#if LONG && HAVE_C99_STRTOLD
 # define STRTOD strtold
 #else
 # define STRTOD strtod
@@ -59,19 +59,19 @@ C_STRTOD (char const *nptr, char **endptr)
 
 #else
 
-  char *saved_locale = setlocale (LC_ALL, NULL);
+  char *saved_locale = setlocale (LC_NUMERIC, NULL);
 
   if (saved_locale)
     {
       saved_locale = xstrdup (saved_locale);
-      setlocale (LC_ALL, "C");
+      setlocale (LC_NUMERIC, "C");
     }
 
   r = STRTOD (nptr, endptr);
 
   if (saved_locale)
     {
-      setlocale (LC_ALL, saved_locale);
+      setlocale (LC_NUMERIC, saved_locale);
       free (saved_locale);
     }