]> git.mxchange.org Git - simgear.git/commitdiff
Fix MSVC build, no C99 so no round().
authorJames Turner <zakalawe@mac.com>
Wed, 9 Oct 2013 09:52:54 +0000 (11:52 +0200)
committerJames Turner <zakalawe@mac.com>
Wed, 9 Oct 2013 09:52:54 +0000 (11:52 +0200)
(Doesn't use SGMisc<T>::round, since Nasal is pure C)

simgear/nasal/mathlib.c

index fcf23e6e0ffdf8439cd5c3628f0de66afbb4a5e0..b12bc830a2423b54ded23d1844827ad59eabe54d 100644 (file)
@@ -159,8 +159,13 @@ static naRef f_round(naContext c, naRef me, int argc, naRef* args)
         naRuntimeError(c, "non numeric arguments to round()");
     if (naIsNil(b))
         b.num = 1.0;
-    
+
+#ifdef _MSC_VER // MSVC is not C99-compatible, no round() in math.h
+    double y = a.num / b.num;
+    double x = floor(y + 0.5);
+#else
     double x = round(a.num / b.num);
+#endif
     a.num = x * b.num;
     
     return VALIDATE(a);