summaryrefslogtreecommitdiff
path: root/tcl/compat/fixstrtod.c
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>1999-11-09 01:28:43 +0000
committerJason Molenda <jmolenda@apple.com>1999-11-09 01:28:43 +0000
commiteceff73081bb2d5ebd624f6e2b775e93c4c7b298 (patch)
treeee2bc71d61f78dbfdf494640cfb678822e101cef /tcl/compat/fixstrtod.c
parent69a7b5f79888513741e65a54216d7756474b76c2 (diff)
downloadgdb-eceff73081bb2d5ebd624f6e2b775e93c4c7b298.tar.gz
import dejagnu-1999-11-08 snapshotdejagnu-1999-11-08
Diffstat (limited to 'tcl/compat/fixstrtod.c')
-rw-r--r--tcl/compat/fixstrtod.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/tcl/compat/fixstrtod.c b/tcl/compat/fixstrtod.c
new file mode 100644
index 00000000000..5890bd1b241
--- /dev/null
+++ b/tcl/compat/fixstrtod.c
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ *
+ * RCS: @(#) $Id$
+ */
+
+#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();
+
+double
+fixstrtod(string, endPtr)
+ char *string;
+ char **endPtr;
+{
+ double d;
+ d = strtod(string, endPtr);
+ if ((endPtr != NULL) && (*endPtr != string) && ((*endPtr)[-1] == 0)) {
+ *endPtr -= 1;
+ }
+ return d;
+}