#define XFLG_WORD_SPLIT (1<<3)
#define XFLG_DIRECTORY (1<<4)
#define XFLG_NO_PREFIXES (1<<5)
-#define XFLG_ABS_PATH (1<<6)
+#define XFLG_ANCHORED2ABS (1<<6)
#define PERMS_REPORT (1<<0)
#define PERMS_SKIP_MTIME (1<<1)
#define uint32 unsigned int32
#endif
-#if SIZEOF_OFF64_T && HAVE_STRUCT_STAT64
-#define OFF_T off64_t
-#define STRUCT_STAT struct stat64
-#else
+#if SIZEOF_OFF_T == 8 || !SIZEOF_OFF64_T || !HAVE_STRUCT_STAT64
#define OFF_T off_t
#define STRUCT_STAT struct stat
+#else
+#define OFF_T off64_t
+#define STRUCT_STAT struct stat64
+#define USE_STAT64_FUNCS 1
#endif
/* CAVEAT: on some systems, int64 will really be a 32-bit integer IFF
char *link; /* Points to symlink string, if a symlink */
} u;
OFF_T length;
- char *basename;
- char *dirname;
- char *basedir;
+ char *basename; /* The current item's name (AKA filename) */
+ char *dirname; /* The directory info inside the transfer */
+ union {
+ char *root; /* Sender-side dir info outside transfer */
+ int depth; /* Receiver-side directory depth info */
+ } dir;
union {
struct idev *idev;
struct hlink *links;
alloc_pool_t hlink_pool;
int count;
int malloced;
+ int low, high;
};
#define SUMFLG_SAME_OFFSET (1<<0)
};
-/* we need this function because of the silly way in which duplicate
- entries are handled in the file lists - we can't change this
- without breaking existing versions */
-static inline int flist_up(struct file_list *flist, int i)
-{
- while (!flist->files[i]->basename) i++;
- return i;
-}
-
#include "byteorder.h"
#include "lib/mdfour.h"
#include "lib/wildmatch.h"