X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/591b908fbf4f817bf0b799c250dc2a47ddef0d1d..6d7b3d52dc3a9caa73e765b60994b9781643753b:/exclude.c diff --git a/exclude.c b/exclude.c index 9a7a81c3..94556098 100644 --- a/exclude.c +++ b/exclude.c @@ -133,6 +133,19 @@ static void add_rule(struct filter_list_struct *listp, const char *pat, listp->debug_type); } + /* This flag also indicates that we're reading a list that + * needs to be filtered now, not post-filtered later. */ + if (xflags & XFLG_ANCHORED2ABS) { + uint32 mf = mflags & (MATCHFLG_RECEIVER_SIDE|MATCHFLG_SENDER_SIDE); + if (am_sender) { + if (mf == MATCHFLG_RECEIVER_SIDE) + return; + } else { + if (mf == MATCHFLG_SENDER_SIDE) + return; + } + } + if (!(ret = new(struct filter_struct))) out_of_memory("add_rule"); memset(ret, 0, sizeof ret[0]);