A quick fix for the mysterious non working isnan on macosx builds.
[synfig.git] / synfig-core / trunk / src / synfig / time.cpp
index 946ac0b..837f7aa 100644 (file)
@@ -38,7 +38,6 @@
 #include <ctype.h>
 #include <math.h>
 
-#ifndef isnan
 
 #ifdef WIN32
 #include <float.h>
@@ -48,12 +47,18 @@ extern "C" { int _isnan(double x); }
 #endif
 #endif
 
-#ifdef __APPLE__
-#define isnan __isnanf
+// For some reason isnan() isn't working on macosx any more.
+// This is a quick fix.
+#if defined(__APPLE__) && !defined(SYNFIG_ISNAN_FIX)
+#ifdef isnan
+#undef isnan
 #endif
-
+inline bool isnan(double x) { return x != x; }
+inline bool isnan(float x) { return x != x; }
+#define SYNFIG_ISNAN_FIX 1
 #endif
 
+
 #endif
 
 /* === U S I N G =========================================================== */