Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
564ef54
)
When preforming a recursive delete, push/pop the per-dir merge rules.
author
Wayne Davison
<wayned@samba.org>
Tue, 22 Feb 2005 20:42:55 +0000
(20:42 +0000)
committer
Wayne Davison
<wayned@samba.org>
Tue, 22 Feb 2005 20:42:55 +0000
(20:42 +0000)
flist.c
patch
|
blob
|
blame
|
history
diff --git
a/flist.c
b/flist.c
index
4334076
..
05b53f6
100644
(file)
--- a/
flist.c
+++ b/
flist.c
@@
-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;
struct file_list *dirlist;
char buf[MAXPATHLEN];
int j, zap_dir, ok;
+ void *save_filters;
if (max_delete && deletion_count >= max_delete)
return -1;
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;
}
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];
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);
}
flist_free(dirlist);
+ pop_local_filters(save_filters);
+
if (max_delete && deletion_count >= max_delete)
return -1;
if (max_delete && deletion_count >= max_delete)
return -1;