- Put "basedir" into a union "dir" and named it "root". The other
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index 87c969c..6dc5a9c 100644 (file)
--- a/rsync.h
+++ b/rsync.h
 #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)
@@ -340,12 +340,13 @@ enum msgcode {
 #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
@@ -472,9 +473,12 @@ struct file_struct {
                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;
@@ -514,6 +518,7 @@ struct file_list {
        alloc_pool_t hlink_pool;
        int count;
        int malloced;
+       int low, high;
 };
 
 #define SUMFLG_SAME_OFFSET     (1<<0)
@@ -593,15 +598,6 @@ struct stats {
 };
 
 
-/* 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"