From b8a0af825971c6c5fef9e2111fb0d1b049a93a8d Mon Sep 17 00:00:00 2001
From: dscho <dscho>
Date: Sun, 9 Feb 2003 13:30:53 +0000
Subject: bigendian is now determined at configure time

---
 configure.ac  |  1 +
 include/rfb.h | 37 ++-----------------------------------
 main.c        |  9 +++++----
 3 files changed, 8 insertions(+), 39 deletions(-)

diff --git a/configure.ac b/configure.ac
index 23e4e07..1467688 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,6 +68,7 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h sys
 # Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_C_INLINE
+AC_C_BIGENDIAN
 AC_TYPE_SIZE_T
 AC_HEADER_TIME
 
diff --git a/include/rfb.h b/include/rfb.h
index fcaa995..52a0804 100644
--- a/include/rfb.h
+++ b/include/rfb.h
@@ -60,50 +60,17 @@ typedef signed char Bool;
 
 #include "rfbproto.h"
 
-#ifdef __linux__
-#include <endian.h>
-#elif defined(__APPLE__) || defined(__FreeBSD__)
 #include <sys/types.h>
-#include <machine/endian.h>
-#define _BYTE_ORDER BYTE_ORDER
-#define _LITTLE_ENDIAN LITTLE_ENDIAN
-#elif defined (__SVR4) && defined (__sun) /* Solaris */
-#include <sys/types.h>
-#if defined(__sparc)
-  /* SPARC here (big endian) */
-#define _BYTE_ORDER 4321
-#elif defined(__i386)
-#define _BYTE_ORDER 1234
-#else
-#error Solaris 2.5.1 had ppc support did it not? :-)
-#endif
-#undef Bool
-#define Bool char
-#undef SIGNED
-#define SIGNED
-#include <sys/types.h>
-/* typedef unsigned int pthread_t; */
-#elif defined(WIN32)
-#define _LITTLE_ENDIAN 1234
-#define _BYTE_ORDER _LITTLE_ENDIAN
+#if defined(WIN32)
+#define WORDS_BIGENDIAN
 #undef Bool
 #define Bool int
-#else
-#include <sys/endian.h>
 #endif
 
 #ifdef __sgi__
 typedef int socklen_t;
 #endif
 
-#ifndef _BYTE_ORDER
-#define _BYTE_ORDER __BYTE_ORDER
-#endif
-
-#if !defined(_LITTLE_ENDIAN) && defined(__LITTLE_ENDIAN)
-#define _LITTLE_ENDIAN __LITTLE_ENDIAN
-#endif
-
 #ifdef WIN32
 #include <sys/timeb.h>
 #include <winsock.h>
diff --git a/main.c b/main.c
index dddd961..59ddf93 100644
--- a/main.c
+++ b/main.c
@@ -38,10 +38,11 @@ MUTEX(logMutex);
 
 int rfbEnableLogging=1;
 
-/* we cannot compare to _LITTLE_ENDIAN, because some systems
-   (as Solaris) assume little endian if _LITTLE_ENDIAN is
-   defined, even if _BYTE_ORDER is not _LITTLE_ENDIAN */
-char rfbEndianTest = (_BYTE_ORDER == 1234);
+#ifdef WORDS_BIGENDIAN
+char rfbEndianTest = 0;
+#else
+char rfbEndianTest = -1;
+#endif
 
 /* from rfbserver.c */
 void rfbIncrClientRef(rfbClientPtr cl);
-- 
cgit v1.2.3

