diff options
author | Wayne Davison <wayned@samba.org> | 2008-05-31 11:27:13 -0700 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2008-05-31 11:29:24 -0700 |
commit | d1f66d8d796965d90552db75d63bdbbf0b98c3f9 (patch) | |
tree | adc8eeb200b77f4b584e67a4ded3950b4ab20ef6 /flist.c | |
parent | cc911409d6561d66094c2303e9a79b41ea4f2ef5 (diff) | |
download | rsync-d1f66d8d796965d90552db75d63bdbbf0b98c3f9.tar.gz |
If an arg is excluded, don't include its implied dirs.
Diffstat (limited to 'flist.c')
-rw-r--r-- | flist.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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); |