X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d336388403e89f9c3ce7f5e0db564fe9fd4e1952..48a1ff0d45dd8a1ba9330c6f4c4bc5bc9b25b30d:/receiver.c diff --git a/receiver.c b/receiver.c index 88552f4b..76508bf3 100644 --- a/receiver.c +++ b/receiver.c @@ -21,7 +21,6 @@ #include "rsync.h" extern int verbose; -extern int recurse; extern int delete_after; extern int max_delete; extern int csum_length; @@ -32,6 +31,7 @@ extern int batch_gen_fd; extern int am_server; extern int protocol_version; extern int relative_paths; +extern int keep_dirs; extern int keep_dirlinks; extern int preserve_hard_links; extern int preserve_perms; @@ -82,7 +82,7 @@ void delete_files(struct file_list *flist) } for (j = 0; j < flist->count; j++) { - if (!(flist->files[j]->flags & FLAG_TOP_DIR) + if (!(flist->files[j]->flags & FLAG_DEL_START) || !S_ISDIR(flist->files[j]->mode)) continue; @@ -111,7 +111,7 @@ void delete_files(struct file_list *flist) } } else { delete_file(f, S_ISDIR(mode) - ? DEL_DIR | DEL_NO_RECURSE : 0); + ? DEL_DIR | DEL_RECURSE : 0); } deletion_count++; } @@ -600,7 +600,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name, } make_backups = save_make_backups; - if (delete_after && recurse && !local_name && flist->count > 0) + if (delete_after && keep_dirs && !local_name && flist->count > 0) delete_files(flist); if (verbose > 2)