foxygit / doom Log in
commit 58fdd042a19e6db2739755a03293f669cb4f2df9
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Fri Aug 31 08:59:34 2007 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Fri Aug 31 08:59:34 2007 +0000

    Make SHORT and LONG macros return signed values; this is the behaviour
    of the versions in the original source and some code depends on it.

    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 962
---
 src/i_swap.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/i_swap.h b/src/i_swap.h
index d24f500e..065037a4 100644
--- a/src/i_swap.h
+++ b/src/i_swap.h
@@ -35,8 +35,11 @@

 // Just use SDL's endianness swapping functions.

-#define SHORT(x)  SDL_SwapLE16(x)
-#define LONG(x)   SDL_SwapLE32(x)
+// These are deliberately cast to signed values; this is the behaviour
+// of the macros in the original source and some code relies on it.
+
+#define SHORT(x)  ((signed short) SDL_SwapLE16(x))
+#define LONG(x)   ((signed long) SDL_SwapLE32(x))

 // Defines for checking the endianness of the system.