If an arg is excluded, don't include its implied dirs.

This commit is contained in:
Wayne Davison committed 2008-05-31 11:29:24 -07:00
1 parent cc911409d6
commit d1f66d8d79
2 files changed
+7 -2

No files matched your search

+3
View File
@@ -33,6 +33,9 @@ Changes since 3.0.2:
(i.e. several hundred TB), warn the user and avoid sending an invalid
checksum struct over the wire.
- If an source arg is excluded, --relative no longer adds the excluded
arg's implied dirs to the transfer.
- Use the overflow_exit() function for overflows, not out_of_memory().
ENHANCEMENTS:
+4 -2
View File
@@ -2041,7 +2041,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
}
if (inc_recurse && relative_paths && *fbuf) {
if ((p = strchr(fbuf+1, '/')) != NULL) {
if ((p = strchr(fbuf+1, '/')) != NULL
&& !is_excluded(fbuf, S_ISDIR(st.st_mode) != 0, ALL_FILTERS)) {
if (p - fbuf == 1 && *fbuf == '.') {
if ((fn = strchr(p+1, '/')) != NULL)
p = fn;
@@ -2051,7 +2052,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
if (fn == p)
continue;
}
} else if (implied_dirs && (p=strrchr(fbuf,'/')) && p != fbuf) {
} else if (implied_dirs && (p=strrchr(fbuf,'/')) && p != fbuf
&& !is_excluded(fbuf, S_ISDIR(st.st_mode) != 0, ALL_FILTERS)) {
/* Send the implied directories at the start of the
* source spec, so we get their permissions right. */
send_implied_dirs(f, flist, fbuf, fbuf, p, flags, 0);