diff options
Diffstat (limited to 'newlib/libc/stdlib/strtod.c')
-rw-r--r-- | newlib/libc/stdlib/strtod.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/newlib/libc/stdlib/strtod.c b/newlib/libc/stdlib/strtod.c index aca40a6a8..fb4caf86f 100644 --- a/newlib/libc/stdlib/strtod.c +++ b/newlib/libc/stdlib/strtod.c @@ -122,7 +122,9 @@ THIS SOFTWARE. /* #include <fenv.h> */ /* #endif */ +#ifdef USE_LOCALE #include "locale.h" +#endif #ifdef IEEE_Arith #ifndef NO_IEEE_Scale @@ -305,10 +307,14 @@ _DEFUN (_strtod_r, (ptr, s00, se), else if (nd < 16) z = 10*z + c - '0'; nd0 = nd; - if (strcmp (s, localeconv()->decimal_point) == 0) +#ifdef USE_LOCALE + if (c == *localeconv()->decimal_point) +#else + if (c == '.') +#endif { decpt = 1; - c = *(s += strlen (localeconv()->decimal_point)); + c = *++s; if (!nd) { for(; c == '0'; c = *++s) nz++; |