patch 7.4.1437
Problem:    Old system doesn't have isinf() and NAN. (Ben Fritz)
Solution:   Adjust #ifdefs.  Detect isnan() and isinf() functions with
            configure. Use a replacement when missing. (Kazunobu Kuriyama)
diff --git a/src/macros.h b/src/macros.h
index 6e2c94f..464eb66 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -320,3 +320,32 @@
 #if defined(FEAT_CHANNEL) || defined(FEAT_JOB) || defined(FEAT_CLIENTSERVER)
 # define MESSAGE_QUEUE
 #endif
+
+#if defined(FEAT_EVAL) && defined(FEAT_FLOAT)
+# include <float.h>
+# if defined(HAVE_MATH_H)
+   /* for isnan() and isinf() */
+#  include <math.h>
+# endif
+# if defined(WIN32) && !defined(isnan)
+#  define isnan(x) _isnan(x)
+#  define isinf(x) (!_finite(x) && !_isnan(x))
+# else
+#  ifndef HAVE_ISNAN
+    static inline int isnan(double x) { return x != x; }
+#  endif
+#  ifndef HAVE_ISINF
+    static inline int isinf(double x) { return !isnan(x) && isnan(x - x); }
+#  endif
+# endif
+# if !defined(INFINITY)
+#  if defined(DBL_MAX)
+#   define INFINITY (DBL_MAX+DBL_MAX)
+#  else
+#   define INFINITY (1.0 / 0.0)
+#  endif
+# endif
+# if !defined(NAN)
+#  define NAN (INFINITY-INFINITY)
+# endif
+#endif