Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed a bug in the flist sending code that caused the flist sending to
[rsync/rsync.git]
/
rsync.c
diff --git
a/rsync.c
b/rsync.c
index
555c009
..
b61128b
100644
(file)
--- a/
rsync.c
+++ b/
rsync.c
@@
-74,6
+74,7
@@
static int delete_file(char *fname)
extern int force_delete;
STRUCT_STAT st;
int ret;
extern int force_delete;
STRUCT_STAT st;
int ret;
+ extern int recurse;
if (do_unlink(fname) == 0 || errno == ENOENT) return 0;
if (do_unlink(fname) == 0 || errno == ENOENT) return 0;
@@
-93,7
+94,8
@@
static int delete_file(char *fname)
}
if (do_rmdir(fname) == 0 || errno == ENOENT) return 0;
}
if (do_rmdir(fname) == 0 || errno == ENOENT) return 0;
- if (!force_delete || (errno != ENOTEMPTY && errno != EEXIST)) {
+ if (!force_delete || !recurse ||
+ (errno != ENOTEMPTY && errno != EEXIST)) {
rprintf(FERROR,"rmdir(%s) : %s\n", fname, strerror(errno));
return -1;
}
rprintf(FERROR,"rmdir(%s) : %s\n", fname, strerror(errno));
return -1;
}
@@
-636,11
+638,7
@@
static void add_delete_entry(struct file_struct *file)
{
if (dlist_len == dlist_alloc_len) {
dlist_alloc_len += 1024;
{
if (dlist_len == dlist_alloc_len) {
dlist_alloc_len += 1024;
- if (!delete_list) {
- delete_list = (struct delete_list *)malloc(sizeof(delete_list[0])*dlist_alloc_len);
- } else {
- delete_list = (struct delete_list *)realloc(delete_list, sizeof(delete_list[0])*dlist_alloc_len);
- }
+ delete_list = (struct delete_list *)Realloc(delete_list, sizeof(delete_list[0])*dlist_alloc_len);
if (!delete_list) out_of_memory("add_delete_entry");
}
if (!delete_list) out_of_memory("add_delete_entry");
}