Some new defines for incremental-recursion mode.
[rsync/rsync.git] / exclude.c
index 1ed19dd..cfaed26 100644 (file)
--- a/exclude.c
+++ b/exclude.c
@@ -879,14 +879,16 @@ static char default_cvsignore[] =
 
 static void get_cvs_excludes(uint32 mflags)
 {
-       char *p, fname[MAXPATHLEN];
        static int initialized = 0;
+       char *p, fname[MAXPATHLEN];
 
        if (initialized)
                return;
        initialized = 1;
 
-       parse_rule(&cvs_filter_list, default_cvsignore, mflags | MATCHFLG_PERISHABLE, 0);
+       parse_rule(&cvs_filter_list, default_cvsignore,
+                  mflags | (protocol_version >= 30 ? MATCHFLG_PERISHABLE : 0),
+                  0);
 
        p = module_id >= 0 && lp_use_chroot(module_id) ? "/" : getenv("HOME");
        if (p && pathjoin(fname, MAXPATHLEN, p, ".cvsignore") < MAXPATHLEN)
@@ -1070,6 +1072,8 @@ char *get_rule_prefix(int match_flags, const char *pat, int for_xfer,
        else
                legal_len = 0;
 
+       if (match_flags & MATCHFLG_NEGATE)
+               *op++ = '!';
        if (match_flags & MATCHFLG_CVS_IGNORE)
                *op++ = 'C';
        else {