X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/2217b30adfaff4e8579177bc5f8c0de268d3bf57..87a57a3072c0fe742b154bd62869cc08c65625bb:/exclude.c diff --git a/exclude.c b/exclude.c index 87013ec4..36faa966 100644 --- 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);