X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_nan_inf.c;h=2914d1a3454fb9dc926113e7477e8379ecf5f58c;hp=9fc3b616ff010d8d86b2c15b19f71f674c68cb4a;hb=22129bb15a8ad204cf8a5e88e8834ec0b51908c0;hpb=334f12e572cba1d189fba8ac28fbeceb9ae306d2 diff --git a/src/rrd_nan_inf.c b/src/rrd_nan_inf.c index 9fc3b61..2914d1a 100644 --- a/src/rrd_nan_inf.c +++ b/src/rrd_nan_inf.c @@ -1,13 +1,40 @@ -#include "rrd_nan_inf.h" +int done_nan = 0; +int done_inf = 0; -#if defined(WIN32) +double dnan; +double dinf; -double set_to_DNAN(void) { return (double)fmod(0.0,0.0); } -double set_to_DINF(void) { return (double)fabs((double)log(0.0)); } +#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) +#include +#include "rrd.h" + +#define NAN_FUNC (double)fmod(0.0,0.0) +#define INF_FUNC (double)fabs((double)log(0.0)) #else +#include "rrd.h" -double set_to_DNAN(void) { return (double)(0.0/0.0); } -double set_to_DINF(void) { return (double)(1.0/0.0); } +#define NAN_FUNC (double)(0.0/0.0) +#define INF_FUNC (double)(1.0/0.0) #endif + +double rrd_set_to_DNAN( + void) +{ + if (!done_nan) { + dnan = NAN_FUNC; + done_nan = 1; + } + return dnan; +} + +double rrd_set_to_DINF( + void) +{ + if (!done_inf) { + dinf = INF_FUNC; + done_inf = 1; + } + return dinf; +}