diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-02-27 21:27:20 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-02-27 21:27:20 +0100 |
commit | fefecb0fbe14c44d46f91036d76bbb6c28162da8 (patch) | |
tree | 72b405825f3d5e2da3acb619a79bae99b092b26f /src/macros.h | |
parent | f97ddbeb255c64a2b3d9db4b049278cd286070a6 (diff) |
patch 7.4.1440v7.4.1440
Problem: Can't build on Windows.
Solution: Change #ifdefs. Only define isnan when used.
Diffstat (limited to 'src/macros.h')
-rw-r--r-- | src/macros.h | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/macros.h b/src/macros.h index 464eb66a10..b86c479e72 100644 --- a/src/macros.h +++ b/src/macros.h @@ -327,25 +327,29 @@ /* 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; } +# ifdef USING_FLOAT_STUFF +# if defined(WIN32) +# ifndef isnan +# define isnan(x) _isnan(x) +# define isinf(x) (!_finite(x) && !_isnan(x)) +# endif +# 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 -# ifndef HAVE_ISINF - static inline int isinf(double x) { return !isnan(x) && isnan(x - x); } +# if !defined(INFINITY) +# if defined(DBL_MAX) +# define INFINITY (DBL_MAX+DBL_MAX) +# else +# define INFINITY (1.0 / 0.0) +# endif # endif -# endif -# if !defined(INFINITY) -# if defined(DBL_MAX) -# define INFINITY (DBL_MAX+DBL_MAX) -# else -# define INFINITY (1.0 / 0.0) +# if !defined(NAN) +# define NAN (INFINITY-INFINITY) # endif # endif -# if !defined(NAN) -# define NAN (INFINITY-INFINITY) -# endif #endif |