diff mercurial/util.h @ 16385:e501f45b0eba

util.h: unify some common platform tweaks
author Matt Mackall <mpm@selenic.com>
date Tue, 10 Apr 2012 12:07:14 -0500
parents 8d821a173e4e
children ee163a9cf37c
line wrap: on
line diff
--- a/mercurial/util.h	Tue Apr 10 12:07:09 2012 -0500
+++ b/mercurial/util.h	Tue Apr 10 12:07:14 2012 -0500
@@ -113,4 +113,39 @@
 #endif
 #endif
 
+#ifdef _WIN32
+#ifdef _MSC_VER
+/* msvc 6.0 has problems */
+#define inline __inline
+typedef unsigned long uint32_t;
+typedef unsigned __int64 uint64_t;
+#else
+#include <stdint.h>
+#endif
+static uint32_t ntohl(uint32_t x)
+{
+	return ((x & 0x000000ffUL) << 24) |
+	       ((x & 0x0000ff00UL) <<  8) |
+	       ((x & 0x00ff0000UL) >>  8) |
+	       ((x & 0xff000000UL) >> 24);
+}
+#else
+/* not windows */
+#include <sys/types.h>
+#if defined __BEOS__ && !defined __HAIKU__
+#include <ByteOrder.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <inttypes.h>
+#endif
+
+#if defined __hpux || defined __SUNPRO_C || defined _AIX
+#define inline
+#endif
+
+#ifdef __linux
+#define inline __inline
+#endif
+
 #endif /* _HG_UTIL_H_ */