X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/9a5e37fca877b019ba595aa2e12e6a9332806255..4ce838e1f107239f1b18f3f8cd7c7fbab65e0bd5:/exclude.c diff --git a/exclude.c b/exclude.c index 3b05d888..86ed20a1 100644 --- a/exclude.c +++ b/exclude.c @@ -235,8 +235,9 @@ int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir /* Get the next include/exclude arg from the string. The token will not * be '\0' terminated, so use the returned length to limit the string. * Also, be sure to add this length to the returned pointer before passing - * it back to ask for the next token. This routine parses the +/- prefixes - * and the "!" token unless xflags contains XFLG_WORDS_ONLY. The *flag_ptr + * it back to ask for the next token. This routine parses the "!" (list- + * clearing) token and (if xflags does NOT contain XFLG_WORDS_ONLY) the + * +/- prefixes for overriding the include/exclude mode. The *flag_ptr * value will also be set to the MATCHFLG_* bits for the current token. */ static const char *get_exclude_tok(const char *p, unsigned int *len_ptr, @@ -273,7 +274,7 @@ static const char *get_exclude_tok(const char *p, unsigned int *len_ptr, } else len = strlen(s); - if (*p == '!' && len == 1 && !(xflags & XFLG_WORDS_ONLY)) + if (*p == '!' && len == 1) mflags |= MATCHFLG_CLEAR_LIST; *len_ptr = len; @@ -404,7 +405,7 @@ void send_exclude_list(int f) if (ent->match_flags & MATCHFLG_INCLUDE) { write_int(f, l + 2); write_buf(f, "+ ", 2); - } else if ((*p == '-' || *p == '+') && p[1] == ' ') { + } else if (*p == '-' || *p == '+') { write_int(f, l + 2); write_buf(f, "- ", 2); } else