X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fftoastr.c;h=ebeed3e1347b454779a9a3f39ab54c251d23a977;hb=f62a2da1390a78aebe7dcbc5753ba7a2b34cf1fd;hp=41b5aed45deee48ca59d41f2817caaed05719ac4;hpb=52e7df4a7f92778282b1025f72047e36dc929063;p=gnulib.git diff --git a/lib/ftoastr.c b/lib/ftoastr.c index 41b5aed45..ebeed3e13 100644 --- a/lib/ftoastr.c +++ b/lib/ftoastr.c @@ -1,6 +1,6 @@ /* floating point to accurate string - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010-2012 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 @@ -25,9 +25,10 @@ This code relies on sprintf, strtod, etc. operating accurately; otherwise, the resulting strings could be inaccurate or too long. */ +#include + #include "ftoastr.h" -#include "intprops.h" #include #include #include @@ -38,14 +39,15 @@ # define FLOAT_MIN LDBL_MIN # define FLOAT_PREC_BOUND _GL_LDBL_PREC_BOUND # define FTOASTR ldtoastr -# define STRTOF strtold +# if HAVE_C99_STRTOLD +# define STRTOF strtold +# endif #elif LENGTH == 2 # define FLOAT double # define FLOAT_DIG DBL_DIG # define FLOAT_MIN DBL_MIN # define FLOAT_PREC_BOUND _GL_DBL_PREC_BOUND # define FTOASTR dtoastr -# define STRTOF strtod #else # define LENGTH 1 # define FLOAT float @@ -53,21 +55,22 @@ # define FLOAT_MIN FLT_MIN # define FLOAT_PREC_BOUND _GL_FLT_PREC_BOUND # define FTOASTR ftoastr -# define STRTOF strtof +# if HAVE_STRTOF +# define STRTOF strtof +# endif #endif /* On pre-C99 hosts, approximate strtof and strtold with strtod. This may generate one or two extra digits, but that's better than not - working at all. Assume that strtof works if strtold does. */ -#if LENGTH != 2 && ! HAVE_C99_STRTOLD -# undef STRTOF + working at all. */ +#ifndef STRTOF # define STRTOF strtod #endif /* On hosts where it's not known that snprintf works, use sprintf to implement the subset needed here. Typically BUFSIZE is big enough - and there's little performance hit. */ -#if ! GNULIB_SNPRINTF_POSIX + and there's little or no performance hit. */ +#if ! GNULIB_SNPRINTF # undef snprintf # define snprintf ftoastr_snprintf static int