Fix Windows build, again.
Fix Windows build, again.
1.1 --- a/core/logic/smn_float.cpp Tue Apr 22 19:46:55 2014 -0700
1.2 +++ b/core/logic/smn_float.cpp Tue Apr 22 20:04:12 2014 -0700
1.3 @@ -35,6 +35,7 @@
1.4 #include "common_logic.h"
1.5 #include "MersenneTwister.h"
1.6 #include <IPluginSys.h>
1.7 +#include <am-utility.h>
1.8
1.9 /****************************************
1.10 * *
1.11 @@ -119,7 +120,7 @@
1.12 static cell_t sm_FloatNot(IPluginContext *pCtx, const cell_t *params)
1.13 {
1.14 float val = sp_ctof(params[1]);
1.15 - if (isnan(val))
1.16 + if (ke::IsNaN(val))
1.17 return 1;
1.18 return val ? 0 : 1;
1.19 }
2.1 --- a/core/sm_stringutil.cpp Tue Apr 22 19:46:55 2014 -0700
2.2 +++ b/core/sm_stringutil.cpp Tue Apr 22 20:04:12 2014 -0700
2.3 @@ -33,12 +33,12 @@
2.4 #include <ctype.h>
2.5 #include <stdarg.h>
2.6 #include <ITextParsers.h>
2.7 -#include <float.h>
2.8 #include "sm_stringutil.h"
2.9 #include "Logger.h"
2.10 #include "PlayerManager.h"
2.11 #include "logic_bridge.h"
2.12 #include "sourcemod.h"
2.13 +#include <am-utility.h>
2.14
2.15 #define LADJUST 0x00000004 /* left adjustment */
2.16 #define ZEROPAD 0x00000080 /* zero (as opposed to blank) pad */
2.17 @@ -214,7 +214,8 @@
2.18 int significant_digits = 0; // number of significant digits written
2.19 const int MAX_SIGNIFICANT_DIGITS = 16;
2.20
2.21 - if (isnan(fval)) {
2.22 + if (ke::IsNaN(fval))
2.23 + {
2.24 AddString(buf_p, maxlen, "NaN", width, prec);
2.25 return;
2.26 }
3.1 --- a/public/amtl/am-utility.h Tue Apr 22 19:46:55 2014 -0700
3.2 +++ b/public/amtl/am-utility.h Tue Apr 22 20:04:12 2014 -0700
3.3 @@ -34,6 +34,8 @@
3.4 #include <stddef.h>
3.5 #include <stdlib.h>
3.6 #include <stdint.h>
3.7 +#include <math.h>
3.8 +#include <float.h>
3.9 #if defined(_MSC_VER)
3.10 # include <intrin.h>
3.11 #endif
3.12 @@ -219,6 +221,16 @@
3.13 }
3.14
3.15 static inline bool
3.16 +IsNaN(double v)
3.17 +{
3.18 +#ifdef _MSC_VER
3.19 + return _isnan(v);
3.20 +#else
3.21 + return isnan(v);
3.22 +#endif
3.23 +}
3.24 +
3.25 +static inline bool
3.26 IsPowerOfTwo(size_t value)
3.27 {
3.28 if (value == 0)