Use umask kluge from rsync.fns to try to get rid of a potential
[rsync/rsync.git] / exclude.c
index 87013ec..36faa96 100644 (file)
--- a/exclude.c
+++ b/exclude.c
@@ -674,8 +674,7 @@ static const char *parse_rule_tok(const char *p, uint32 mflags, int xflags,
                } else if (*s == '+' && s[1] == ' ') {
                        new_mflags |= MATCHFLG_INCLUDE;
                        s += 2;
-               }
-               if (*s == '!')
+               } else if (*s == '!')
                        new_mflags |= MATCHFLG_CLEAR_LIST; /* Tentative! */
        } else {
                char ch = 0, *mods = "";
@@ -716,7 +715,6 @@ static const char *parse_rule_tok(const char *p, uint32 mflags, int xflags,
                        if ((s = RULE_STRCMP(s, "show")) != NULL)
                                ch = 'S';
                        break;
-
                default:
                        ch = *s;
                        if (s[1] == ',')
@@ -757,7 +755,7 @@ static const char *parse_rule_tok(const char *p, uint32 mflags, int xflags,
                        mods = NULL;
                        break;
                default:
-                       rprintf(FERROR, "Unknown filter rule: %s\n", p);
+                       rprintf(FERROR, "Unknown filter rule: `%s'\n", p);
                        exit_cleanup(RERR_SYNTAX);
                }
                while (mods && *++s && *s != ' ' && *s != '_') {
@@ -1107,9 +1105,9 @@ static void send_rules(int f_out, struct filter_list_struct *flp)
                        continue;
                if (ent->match_flags & MATCHFLG_CVS_IGNORE
                    && !(ent->match_flags & MATCHFLG_MERGE_FILE)) {
-                       int f = am_sender || protocol_version < 29 ? f_out : -1;
+                       int f = am_sender || protocol_version < 29 ? f_out : -2;
                        send_rules(f, &cvs_filter_list);
-                       if (f >= 0)
+                       if (f == f_out)
                                continue;
                }
                p = get_rule_prefix(ent->match_flags, ent->pattern, 1, &plen);