X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/8388e011ae6d53552229f8de4c15e609af228e92..234844915e81c9ebc3e95b2e312982d3d1eb59a3:/rsync.h diff --git a/rsync.h b/rsync.h index e07ac9f8..e5a40194 100644 --- a/rsync.h +++ b/rsync.h @@ -507,7 +507,6 @@ struct file_struct { uid_t uid; /* The user ID number */ uid_t gid; /* The group ID number or GID_NONE */ struct idev *idev; /* The hard-link info during matching */ - struct hlist *hlist; /* The hard-link info after matching */ int32 num; /* A signed number */ uint32 unum; /* An unsigned number */ } extras[1]; @@ -539,8 +538,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)