mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-05-10 16:03:48 -04:00
Add a CAUTION message to --debug=FILTER for trailing whitespace.
This commit is contained in:
3
NEWS.md
3
NEWS.md
@@ -138,6 +138,9 @@
|
||||
|
||||
- More ASM optimizations from Shark64.
|
||||
|
||||
- Using `--debug=FILTER` now outputs a caution message if a filter rule
|
||||
has trailing whitespace.
|
||||
|
||||
- Transformed rrsync into a python script with improvements:
|
||||
- Security has been beefed up.
|
||||
- The known rsync options were updated to include recent additions.
|
||||
|
||||
14
exclude.c
14
exclude.c
@@ -152,13 +152,17 @@ static void add_rule(filter_rule_list *listp, const char *pat, unsigned int pat_
|
||||
{
|
||||
const char *cp;
|
||||
unsigned int pre_len, suf_len, slash_cnt = 0;
|
||||
char *mention_rule_suffix;
|
||||
|
||||
if (DEBUG_GTE(FILTER, 2)) {
|
||||
rprintf(FINFO, "[%s] add_rule(%s%.*s%s)%s\n",
|
||||
if (DEBUG_GTE(FILTER, 1) && pat_len && (pat[pat_len-1] == ' ' || pat[pat_len-1] == '\t'))
|
||||
mention_rule_suffix = " -- CAUTION: trailing whitespace!";
|
||||
else
|
||||
mention_rule_suffix = DEBUG_GTE(FILTER, 2) ? "" : NULL;
|
||||
if (mention_rule_suffix) {
|
||||
rprintf(FINFO, "[%s] add_rule(%s%.*s%s)%s%s\n",
|
||||
who_am_i(), get_rule_prefix(rule, pat, 0, NULL),
|
||||
(int)pat_len, pat,
|
||||
(rule->rflags & FILTRULE_DIRECTORY) ? "/" : "",
|
||||
listp->debug_type);
|
||||
(int)pat_len, pat, (rule->rflags & FILTRULE_DIRECTORY) ? "/" : "",
|
||||
listp->debug_type, mention_rule_suffix);
|
||||
}
|
||||
|
||||
/* These flags also indicate that we're reading a list that
|
||||
|
||||
@@ -3723,6 +3723,14 @@ first matching pattern is acted on: if it is an exclude pattern, then that file
|
||||
is skipped; if it is an include pattern then that filename is not skipped; if
|
||||
no matching pattern is found, then the filename is not skipped.
|
||||
|
||||
Aside: because the interactions of filter rules can be complex, it is useful to
|
||||
use the `--debug=FILTER` option if things aren't working they way you expect.
|
||||
The level-1 output (the default if no level number is specified) mentions the
|
||||
filter rule that is first matched by each file in the transfer. It also warns
|
||||
if a filter rule has trailing whitespace. The level-2 output mentions a lot
|
||||
more filter events, including the definition of each rule and the handling of
|
||||
per-directory filter files.
|
||||
|
||||
Rsync builds an ordered list of filter rules as specified on the command-line.
|
||||
Filter rules have the following syntax:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user