From: Wayne Davison Date: Fri, 13 Mar 2009 15:49:53 +0000 (-0700) Subject: Make missing args governed by protect filters, not hide. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/b0a04670a254aabe2f5557fedf3459c4537e6d8b Make missing args governed by protect filters, not hide. --- diff --git a/flist.c b/flist.c index f7bd1aad..f0e557e5 100644 --- a/flist.c +++ b/flist.c @@ -2153,7 +2153,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) } /* A dot-dir should not be excluded! */ - if (name_type != DOTDIR_NAME + if (name_type != DOTDIR_NAME && st.st_mode != 0 && is_excluded(fbuf, S_ISDIR(st.st_mode) != 0, ALL_FILTERS)) continue; diff --git a/generator.c b/generator.c index ec33d5a3..d14cafad 100644 --- a/generator.c +++ b/generator.c @@ -98,7 +98,7 @@ extern char *backup_dir; extern char *backup_suffix; extern int backup_suffix_len; extern struct file_list *cur_flist, *first_flist, *dir_flist; -extern struct filter_list_struct daemon_filter_list; +extern struct filter_list_struct filter_list, daemon_filter_list; int ignore_perishable = 0; int non_perishable_cnt = 0; @@ -1375,6 +1375,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, } if (delete_missing_args && file->mode == 0) { + if (filter_list.head && check_filter(&filter_list, FINFO, fname, is_dir) < 0) + return; if (statret == 0) delete_item(fname, sx.st.st_mode, del_opts); return;