Mercurial > public > mercurial-scm > hg-stable
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_ */