Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Changed delete_missing() to not limit the use of DEL_FORCE_RECURSE
[rsync/rsync.git]
/
rsync.h
diff --git
a/rsync.h
b/rsync.h
index
7d04bfb
..
3de0b42
100644
(file)
--- a/
rsync.h
+++ b/
rsync.h
@@
-41,7
+41,7
@@
/* These flags are only used during the flist transfer. */
/* These flags are only used during the flist transfer. */
-#define XMIT_
DEL_START
(1<<0)
+#define XMIT_
TOP_DIR
(1<<0)
#define XMIT_SAME_MODE (1<<1)
#define XMIT_EXTENDED_FLAGS (1<<2)
#define XMIT_SAME_RDEV_pre28 XMIT_EXTENDED_FLAGS /* Only in protocols < 28 */
#define XMIT_SAME_MODE (1<<1)
#define XMIT_EXTENDED_FLAGS (1<<2)
#define XMIT_SAME_RDEV_pre28 XMIT_EXTENDED_FLAGS /* Only in protocols < 28 */
@@
-57,9
+57,10
@@
/* These flags are used in the live flist data. */
/* These flags are used in the live flist data. */
-#define FLAG_
DEL_START
(1<<0)
+#define FLAG_
TOP_DIR
(1<<0)
#define FLAG_HLINK_EOL (1<<1) /* generator only */
#define FLAG_MOUNT_POINT (1<<2) /* sender only */
#define FLAG_HLINK_EOL (1<<1) /* generator only */
#define FLAG_MOUNT_POINT (1<<2) /* sender only */
+#define FLAG_DEL_HERE (1<<3) /* receiver/generator */
/* update this if you make incompatible changes */
#define PROTOCOL_VERSION 29
/* update this if you make incompatible changes */
#define PROTOCOL_VERSION 29
@@
-108,12
+109,8
@@
#define ALL_FILTERS 2
#define XFLG_FATAL_ERRORS (1<<0)
#define ALL_FILTERS 2
#define XFLG_FATAL_ERRORS (1<<0)
-#define XFLG_DEF_INCLUDE (1<<1)
-#define XFLG_DEF_EXCLUDE (1<<2)
-#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_OLD_PREFIXES (1<<1)
+#define XFLG_ANCHORED2ABS (1<<2)
#define PERMS_REPORT (1<<0)
#define PERMS_SKIP_MTIME (1<<1)
#define PERMS_REPORT (1<<0)
#define PERMS_SKIP_MTIME (1<<1)
@@
-181,13
+178,6
@@
enum msgcode {
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
@@
-347,12
+337,13
@@
enum msgcode {
#define uint32 unsigned int32
#endif
#define uint32 unsigned int32
#endif
-#if SIZEOF_OFF64_T
-#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
#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
#endif
/* CAVEAT: on some systems, int64 will really be a 32-bit integer IFF
@@
-479,9
+470,12
@@
struct file_struct {
char *link; /* Points to symlink string, if a symlink */
} u;
OFF_T length;
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;
union {
struct idev *idev;
struct hlink *links;
@@
-521,6
+515,7
@@
struct file_list {
alloc_pool_t hlink_pool;
int count;
int malloced;
alloc_pool_t hlink_pool;
int count;
int malloced;
+ int low, high;
};
#define SUMFLG_SAME_OFFSET (1<<0)
};
#define SUMFLG_SAME_OFFSET (1<<0)
@@
-568,6
+563,11
@@
struct map_struct {
#define MATCHFLG_PERDIR_MERGE (1<<11)/* merge-file is searched per-dir */
#define MATCHFLG_EXCLUDE_SELF (1<<12)/* merge-file name should be excluded */
#define MATCHFLG_FINISH_SETUP (1<<13)/* per-dir merge file needs setup */
#define MATCHFLG_PERDIR_MERGE (1<<11)/* merge-file is searched per-dir */
#define MATCHFLG_EXCLUDE_SELF (1<<12)/* merge-file name should be excluded */
#define MATCHFLG_FINISH_SETUP (1<<13)/* per-dir merge file needs setup */
+#define MATCHFLG_NEGATE (1<<14)/* rule matches when pattern does not */
+
+#define MATCHFLGS_FROM_CONTAINER (MATCHFLG_ABS_PATH | MATCHFLG_INCLUDE \
+ | MATCHFLG_DIRECTORY | MATCHFLG_NEGATE)
+
struct filter_struct {
struct filter_struct *next;
char *pattern;
struct filter_struct {
struct filter_struct *next;
char *pattern;
@@
-600,15
+600,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"
#include "byteorder.h"
#include "lib/mdfour.h"
#include "lib/wildmatch.h"