/* 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 */
/* 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_DEL_HERE (1<<3) /* receiver/generator */
/* update this if you make incompatible changes */
#define PROTOCOL_VERSION 29
#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_ANCHORED2ABS (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 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 MATCHFLG_CVS_IGNORE (1<<15)/* rule was -C or :C */
+
+#define MATCHFLGS_FROM_CONTAINER (MATCHFLG_ABS_PATH | MATCHFLG_INCLUDE \
+ | MATCHFLG_DIRECTORY | MATCHFLG_NEGATE)
+
struct filter_struct {
struct filter_struct *next;
char *pattern;
- unsigned int match_flags;
+ uint32 match_flags;
union {
int slash_cnt;
struct filter_list_struct *mergelist;