Commit fcf83e7908baffae4ffedd97f02faed544025289

Sam Lantinga 2017-08-21T16:30:24

Fixed bug 3768 - provide a quick copysign() solution for watcom Ozkan Sezer The following patch provides a quick copysign solution for Watcom/x86

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff --git a/src/stdlib/SDL_stdlib.c b/src/stdlib/SDL_stdlib.c
index f3fa7d1..194298d 100644
--- a/src/stdlib/SDL_stdlib.c
+++ b/src/stdlib/SDL_stdlib.c
@@ -109,6 +109,12 @@ SDL_copysign(double x, double y)
     return copysign(x, y);
 #elif defined(HAVE__COPYSIGN)
     return _copysign(x, y);
+#elif defined(__WATCOMC__) && defined(__386__)
+    /* this is nasty as hell, but it works.. */
+    unsigned int *xi = (unsigned int *) &x,
+                 *yi = (unsigned int *) &y;
+    xi[1] = (yi[1] & 0x80000000) | (xi[1] & 0x7fffffff);
+    return x;
 #else
     return SDL_uclibc_copysign(x, y);
 #endif /* HAVE_COPYSIGN */