aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/mingw/ChangeLog5
-rw-r--r--winsup/mingw/mingwex/strtold.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
index 8c10559..b4010be 100644
--- a/winsup/mingw/ChangeLog
+++ b/winsup/mingw/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-01 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * mingwex/strtold.c (__asctoe64): Set endptr to 'e' if exponent
+ string is not valid.
+
2005-01-26 Oliver Stoeneberg <oliverst@online.de>
* include/malloc.h: Add missing return code defines for
diff --git a/winsup/mingw/mingwex/strtold.c b/winsup/mingw/mingwex/strtold.c
index 954d3cb..3bbcea0 100644
--- a/winsup/mingw/mingwex/strtold.c
+++ b/winsup/mingw/mingwex/strtold.c
@@ -255,6 +255,8 @@ expnt:
esign = 1;
exp = 0;
+/* Save position in case we need to fall back. */
+sp = s;
++s;
/* check for + or - */
if( *s == '-' )
@@ -265,6 +267,13 @@ if( *s == '-' )
if( *s == '+' )
++s;
+/* Check for valid exponent. */
+if (!(*s >= '0' && *s <= '9'))
+ {
+ s = sp;
+ goto daldone;
+ }
+
while( (*s >= '0') && (*s <= '9') )
{
/* Stop modifying exp if we are going to overflow anyway,