From bf466c0f82e75b1bd3544a35a40b447de43e8852 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 12 Dec 2006 14:55:21 +0000 Subject: [PATCH] Provide alternate F_LENGTH() define for systems with no 64-bit type. --- rsync.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rsync.h b/rsync.h index e07ac9f8..75745f5f 100644 --- a/rsync.h +++ b/rsync.h @@ -539,8 +539,12 @@ extern int preserve_gid; /* Basename (AKA filename) and length applies to all items */ #define F_BASENAME(f) ((const char*)(f) + FILE_STRUCT_LEN) -#define F_LENGTH(f) ((OFF_T)(f)->len32 + ((f)->flags & FLAG_LENGTH64 \ - ? (OFF_T)OPT_EXTRA(f, 0)->unum << 32 : 0u)) +#if SIZEOF_INT64 < 8 +#define F_LENGTH(f) ((int64)(f)->len32) +#else +#define F_LENGTH(f) ((int64)(f)->len32 + ((f)->flags & FLAG_LENGTH64 \ + ? (int64)OPT_EXTRA(f, 0)->unum << 32 : 0)) +#endif /* If there is a symlink string, it is always right after the basename */ #define F_SYMLINK(f) (F_BASENAME(f) + strlen(F_BASENAME(f)) + 1) -- 2.34.1