/*
|
/*
|
* fixstrtod.c --
|
* fixstrtod.c --
|
*
|
*
|
* Source code for the "fixstrtod" procedure. This procedure is
|
* Source code for the "fixstrtod" procedure. This procedure is
|
* used in place of strtod under Solaris 2.4, in order to fix
|
* used in place of strtod under Solaris 2.4, in order to fix
|
* a bug where the "end" pointer gets set incorrectly.
|
* a bug where the "end" pointer gets set incorrectly.
|
*
|
*
|
* Copyright (c) 1995 Sun Microsystems, Inc.
|
* Copyright (c) 1995 Sun Microsystems, Inc.
|
*
|
*
|
* See the file "license.terms" for information on usage and redistribution
|
* See the file "license.terms" for information on usage and redistribution
|
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
*
|
*
|
* RCS: @(#) $Id: fixstrtod.c,v 1.1.1.1 2002-01-16 10:25:23 markom Exp $
|
* RCS: @(#) $Id: fixstrtod.c,v 1.1.1.1 2002-01-16 10:25:23 markom Exp $
|
*/
|
*/
|
|
|
#include <stdio.h>
|
#include <stdio.h>
|
|
|
#undef strtod
|
#undef strtod
|
|
|
/*
|
/*
|
* Declare strtod explicitly rather than including stdlib.h, since in
|
* Declare strtod explicitly rather than including stdlib.h, since in
|
* somes systems (e.g. SunOS 4.1.4) stdlib.h doesn't declare strtod.
|
* somes systems (e.g. SunOS 4.1.4) stdlib.h doesn't declare strtod.
|
*/
|
*/
|
|
|
extern double strtod();
|
extern double strtod();
|
|
|
double
|
double
|
fixstrtod(string, endPtr)
|
fixstrtod(string, endPtr)
|
char *string;
|
char *string;
|
char **endPtr;
|
char **endPtr;
|
{
|
{
|
double d;
|
double d;
|
d = strtod(string, endPtr);
|
d = strtod(string, endPtr);
|
if ((endPtr != NULL) && (*endPtr != string) && ((*endPtr)[-1] == 0)) {
|
if ((endPtr != NULL) && (*endPtr != string) && ((*endPtr)[-1] == 0)) {
|
*endPtr -= 1;
|
*endPtr -= 1;
|
}
|
}
|
return d;
|
return d;
|
}
|
}
|
|
|