Browse Source

Fixed bug 3768 - provide a quick copysign() solution for watcom

Ozkan Sezer

The following patch provides a quick copysign solution for Watcom/x86
Sam Lantinga 7 years ago
parent
commit
fcf83e7908
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/stdlib/SDL_stdlib.c

+ 6 - 0
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 */