a leading / in a pattern now means "use a absolute path match". This
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index cc349f1..82ac323 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -28,7 +28,7 @@
 #define CHAR_OFFSET 0
 
 
-#define FILE_VALID 1
+#define FLAG_DELETE (1<<0)
 #define SAME_MODE (1<<1)
 #define SAME_RDEV (1<<2)
 #define SAME_UID (1<<3)
 #define SAME_TIME (1<<7)
 
 /* update this if you make incompatible changes */
-#define PROTOCOL_VERSION 15
+#define PROTOCOL_VERSION 17
 #define MIN_PROTOCOL_VERSION 11
-#define MAX_PROTOCOL_VERSION 20
+#define MAX_PROTOCOL_VERSION 30
 
-#define SPARSE_WRITE_SIZE (4*1024)
+#define SPARSE_WRITE_SIZE (1024)
 #define WRITE_SIZE (32*1024)
 #define CHUNK_SIZE (32*1024)
 #define MAX_MAP_SIZE (4*1024*1024)
 #define uint32 unsigned int32
 #endif
 
+#ifdef HAVE_LONGLONG
+#define int64 long long
+#else
+#define int64 off_t
+#endif
 
 #ifndef MIN
 #define MIN(a,b) ((a)<(b)?(a):(b))
 #endif
 
 struct file_struct {
+       unsigned flags;
        time_t modtime;
        off_t length;
        mode_t mode;
@@ -257,7 +263,7 @@ struct map_struct {
 /* 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 int flist_up(struct file_list *flist, int i)
+static inline int flist_up(struct file_list *flist, int i)
 {
        while (!flist->files[i]->basename) i++;
        return i;
@@ -343,6 +349,22 @@ extern int errno;
 #define S_ISCHR(mode) (((mode) & (_S_IFMT)) == (_S_IFCHR))
 #endif
 
+#ifndef S_ISSOCK
+#ifdef _S_IFSOCK
+#define S_ISSOCK(mode) (((mode) & (_S_IFMT)) == (_S_IFSOCK))
+#else
+#define S_ISSOCK(mode) (0)
+#endif
+#endif
+
+#ifndef S_ISFIFO
+#ifdef _S_IFIFO
+#define S_ISFIFO(mode) (((mode) & (_S_IFMT)) == (_S_IFIFO))
+#else
+#define S_ISFIFO(mode) (0)
+#endif
+#endif
+
 #ifndef S_ISDIR
 #define S_ISDIR(mode) (((mode) & (_S_IFMT)) == (_S_IFDIR))
 #endif
@@ -351,5 +373,6 @@ extern int errno;
 #define S_ISREG(mode) (((mode) & (_S_IFMT)) == (_S_IFREG))
 #endif
 
-#define IS_DEVICE(mode) (S_ISCHR(mode) || S_ISBLK(mode))
+
+#define IS_DEVICE(mode) (S_ISCHR(mode) || S_ISBLK(mode) || S_ISSOCK(mode) || S_ISFIFO(mode))