X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/564ef546a92a7588dcd0399c29dfb3914d36435d..41b5b5e75633df788cb77a490fac03c0897fe3d5:/flist.c diff --git a/flist.c b/flist.c index 4334076a..110c3042 100644 --- a/flist.c +++ b/flist.c @@ -963,7 +963,7 @@ skip_filters: file->mode = save_mode; } - if (!S_ISDIR(st.st_mode)) + if (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)) stats.total_size += st.st_size; return file; @@ -1790,6 +1790,7 @@ int delete_file(char *fname, int mode, int flags) struct file_list *dirlist; char buf[MAXPATHLEN]; int j, zap_dir, ok; + void *save_filters; if (max_delete && deletion_count >= max_delete) return -1; @@ -1837,6 +1838,8 @@ int delete_file(char *fname, int mode, int flags) } flags |= DEL_FORCE_RECURSE; + save_filters = push_local_filters(fname, strlen(fname)); + dirlist = get_dirlist(fname, 0); for (j = dirlist->count; j--; ) { struct file_struct *fp = dirlist->files[j]; @@ -1848,6 +1851,8 @@ int delete_file(char *fname, int mode, int flags) } flist_free(dirlist); + pop_local_filters(save_filters); + if (max_delete && deletion_count >= max_delete) return -1;