summaryrefslogtreecommitdiffstats
path: root/compat/strtod.c
diff options
context:
space:
mode:
Diffstat (limited to 'compat/strtod.c')
-rw-r--r--compat/strtod.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/compat/strtod.c b/compat/strtod.c
index 744c7c8..22d8d92 100644
--- a/compat/strtod.c
+++ b/compat/strtod.c
@@ -9,7 +9,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: strtod.c,v 1.2 1998/09/14 18:39:45 stanton Exp $
+ * RCS: @(#) $Id: strtod.c,v 1.3 2001/09/04 23:16:18 dgp Exp $
*/
#include "tcl.h"
@@ -19,6 +19,7 @@
# include <stdlib.h>
#endif
#include <ctype.h>
+#include "tclPort.h"
#ifndef TRUE
#define TRUE 1
@@ -206,6 +207,10 @@ strtod(string, endPtr)
}
expSign = FALSE;
}
+ if (!isdigit(*p)) {
+ p = pExp;
+ goto done;
+ }
while (isdigit(*p)) {
exp = exp * 10 + (*p - '0');
p += 1;
@@ -232,6 +237,7 @@ strtod(string, endPtr)
}
if (exp > maxExponent) {
exp = maxExponent;
+ errno = ERANGE;
}
dblExp = 1.0;
for (d = powersOf10; exp != 0; exp >>= 1, d += 1) {