[glib] Make g_ascii_strtod behave as documented



commit e52437982c4dd1c88459f3eed0d8ad1dc167c0eb
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Oct 21 14:57:47 2011 -0400

    Make g_ascii_strtod behave as documented
    
    The docs explicitly state that we reset errno, so lets do that,
    even if we just wrap strtod_l. Also move the argument check
    out of the ifdef.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=662398

 glib/gstrfuncs.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
index b9b4cab..01ca718 100644
--- a/glib/gstrfuncs.c
+++ b/glib/gstrfuncs.c
@@ -673,12 +673,16 @@ g_strtod (const gchar *nptr,
  * you can reliably detect overflow and underflow.
  *
  * Return value: the #gdouble value.
- **/
+ */
 gdouble
 g_ascii_strtod (const gchar *nptr,
                 gchar      **endptr)
 {
+  g_return_val_if_fail (nptr != NULL, 0);
+
 #ifdef HAVE_STRTOD_L
+  errno = 0;
+
   return strtod_l (nptr, endptr, get_C_locale ());
 #else
   gchar *fail_pos;
@@ -690,8 +694,6 @@ g_ascii_strtod (const gchar *nptr,
   const char *end = NULL; /* Silence gcc */
   int strtod_errno;
 
-  g_return_val_if_fail (nptr != NULL, 0);
-
   fail_pos = NULL;
 
   locale_data = localeconv ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]