in each dir's CVS/Entries file as per-dir includes before the dir's list
of excludes taken from the .cvsignore file.
---- orig/exclude.c 2005-04-28 15:56:50
+--- orig/exclude.c 2005-10-14 18:45:50
+++ exclude.c 2005-04-07 18:06:34
-@@ -442,6 +442,14 @@ void *push_local_filters(const char *dir
+@@ -446,6 +446,14 @@ void *push_local_filters(const char *dir
set_filter_dir(dir, dirlen);
}
if (strlcpy(dirbuf + dirbuf_len, ex->pattern,
MAXPATHLEN - dirbuf_len) < MAXPATHLEN - dirbuf_len) {
parse_filter_file(lp, dirbuf, ex->match_flags,
-@@ -957,6 +965,7 @@ void parse_filter_file(struct filter_lis
- char line[MAXPATHLEN+MAX_RULE_PREFIX+1]; /* +1 for trailing slash. */
+@@ -962,6 +970,7 @@ void parse_filter_file(struct filter_lis
+ char line[BIGPATHBUFLEN];
char *eob = line + sizeof line - 1;
int word_split = mflags & MATCHFLG_WORD_SPLIT;
+ int slash_parse = xflags & XFLG_CVS_ENTRIES ? 1 : 0;
if (!fname || !*fname)
return;
-@@ -1001,6 +1010,29 @@ void parse_filter_file(struct filter_lis
+@@ -1006,6 +1015,29 @@ void parse_filter_file(struct filter_lis
continue;
break;
}
if (word_split && isspace(ch))
break;
if (eol_nulls? !ch : (ch == '\n' || ch == '\r'))
-@@ -1010,6 +1042,7 @@ void parse_filter_file(struct filter_lis
+@@ -1015,6 +1047,7 @@ void parse_filter_file(struct filter_lis
else
overflow = 1;
}
if (overflow) {
rprintf(FERROR, "discarding over-long filter: %s...\n", line);
s = line;
---- orig/rsync.h 2005-05-03 17:11:01
-+++ rsync.h 2005-04-07 18:06:34
-@@ -115,6 +115,7 @@
- #define XFLG_FATAL_ERRORS (1<<0)
+--- orig/rsync.h 2005-10-14 18:45:50
++++ rsync.h 2005-10-14 19:17:51
+@@ -116,6 +116,7 @@
#define XFLG_OLD_PREFIXES (1<<1)
#define XFLG_ANCHORED2ABS (1<<2)
-+#define XFLG_CVS_ENTRIES (1<<3)
+ #define XFLG_ABS_IF_SLASH (1<<3)
++#define XFLG_CVS_ENTRIES (1<<4)
#define PERMS_REPORT (1<<0)
#define PERMS_SKIP_MTIME (1<<1)