From 43d0f38b2474d864307d81d259c5874d01b8fbf8 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Fri, 28 Jan 2005 19:03:16 +0000 Subject: [PATCH] Do a better job defining an int32. Also define SIZEOF_INT32 instead of the (unused) LARGE_INT32 variable. --- rsync.h | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/rsync.h b/rsync.h index 0327f2de..7d04bfb8 100644 --- a/rsync.h +++ b/rsync.h @@ -317,18 +317,30 @@ enum msgcode { #define schar char #endif +/* Find a variable that is either exactly 32-bits or longer. + * If some code depends on 32-bit truncation, it will need to + * take special action in a "#if SIZEOF_INT32 > 4" section. */ #ifndef int32 -#if (SIZEOF_INT == 4) -#define int32 int -#elif (SIZEOF_LONG == 4) -#define int32 long -#elif (SIZEOF_SHORT == 4) -#define int32 short +#if SIZEOF_INT == 4 +# define int32 int +# define SIZEOF_INT32 4 +#elif SIZEOF_LONG == 4 +# define int32 long +# define SIZEOF_INT32 4 +#elif SIZEOF_SHORT == 4 +# define int32 short +# define SIZEOF_INT32 4 +#elif SIZEOF_INT > 4 +# define int32 int +# define SIZEOF_INT32 SIZEOF_INT +#elif SIZEOF_LONG > 4 +# define int32 long +# define SIZEOF_INT32 SIZEOF_LONG #else -/* I hope this works */ -#define int32 int -#define LARGE_INT32 +# error Could not find a 32-bit integer variable #endif +#else +# define SIZEOF_INT32 4 #endif #ifndef uint32 -- 2.34.1