summaryrefslogtreecommitdiffstats
path: root/tcl8.6/compat/fixstrtod.c
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2016-12-21 22:56:22 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2016-12-21 22:56:22 (GMT)
commitd1a6de55efc90f190dee42ab8c4fa9070834e77d (patch)
treeec633f5608ef498bee52a5f42c12c49493ec8bf8 /tcl8.6/compat/fixstrtod.c
parent5514e37335c012cc70f5b9aee3cedfe3d57f583f (diff)
parent98acd3f494b28ddd8c345a2bb9311e41e2d56ddd (diff)
downloadblt-d1a6de55efc90f190dee42ab8c4fa9070834e77d.zip
blt-d1a6de55efc90f190dee42ab8c4fa9070834e77d.tar.gz
blt-d1a6de55efc90f190dee42ab8c4fa9070834e77d.tar.bz2
Merge commit '98acd3f494b28ddd8c345a2bb9311e41e2d56ddd' as 'tcl8.6'
Diffstat (limited to 'tcl8.6/compat/fixstrtod.c')
-rw-r--r--tcl8.6/compat/fixstrtod.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/tcl8.6/compat/fixstrtod.c b/tcl8.6/compat/fixstrtod.c
new file mode 100644
index 0000000..63fb8ef
--- /dev/null
+++ b/tcl8.6/compat/fixstrtod.c
@@ -0,0 +1,36 @@
+/*
+ * fixstrtod.c --
+ *
+ * Source code for the "fixstrtod" procedure. This procedure is
+ * used in place of strtod under Solaris 2.4, in order to fix
+ * a bug where the "end" pointer gets set incorrectly.
+ *
+ * Copyright (c) 1995 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ */
+
+#include <stdio.h>
+
+#undef strtod
+
+/*
+ * Declare strtod explicitly rather than including stdlib.h, since in
+ * somes systems (e.g. SunOS 4.1.4) stdlib.h doesn't declare strtod.
+ */
+
+extern double strtod(char *, char **);
+
+double
+fixstrtod(
+ char *string,
+ char **endPtr)
+{
+ double d;
+ d = strtod(string, endPtr);
+ if ((endPtr != NULL) && (*endPtr != string) && ((*endPtr)[-1] == 0)) {
+ *endPtr -= 1;
+ }
+ return d;
+}