X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fxstrtod.c;h=8450829bd2b949e532d2fa11a780a0b85f0fea17;hb=22c1c15d0a29a1b7ea75456abe3f7062f835c887;hp=838c5c463213ad4d805db6d36d26c2054eab186c;hpb=386767027dea095d9b5985d55243d46788e1d960;p=gnulib.git diff --git a/lib/xstrtod.c b/lib/xstrtod.c index 838c5c463..8450829bd 100644 --- a/lib/xstrtod.c +++ b/lib/xstrtod.c @@ -1,24 +1,45 @@ +/* xstrtod.c - error-checking interface to strtod + Copyright (C) 1996, 1999, 2000, 2003 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* Written by Jim Meyering. */ + #ifdef HAVE_CONFIG_H -#include +# include #endif -#ifdef STDC_HEADERS -#include -#else -double strtod (); -#endif +#include "xstrtod.h" #include -#include #include -#include -#include "xstrtod.h" +#include +#include + +/* Tell the compiler that non-default rounding modes are used. */ +#if 199901 <= __STDC_VERSION__ + #pragma STDC FENV_ACCESS ON +#endif + +/* An interface to strtod that encapsulates all the error checking + one should usually perform. Like strtod, but upon successful + conversion put the result in *RESULT and return zero. Return + non-zero and don't modify *RESULT upon any failure. */ int -xstrtod (str, ptr, result) - const char *str; - const char **ptr; - double *result; +xstrtod (char const *str, char const **ptr, double *result) { double val; char *terminator; @@ -45,4 +66,3 @@ xstrtod (str, ptr, result) *result = val; return fail; } -