if (am_sender) {
if (delete_excluded)
args[ac++] = "--delete-excluded";
---- orig/receiver.c 2004-09-21 09:40:27
-+++ receiver.c 2004-09-22 02:09:20
-@@ -42,8 +42,11 @@ extern char *compare_dest;
+--- orig/receiver.c 2004-11-03 20:30:45
++++ receiver.c 2004-11-03 23:10:06
+@@ -43,8 +43,11 @@ extern char *compare_dest;
extern int make_backups;
extern int do_progress;
extern char *backup_dir;
extern int cleanup_got_literal;
extern int module_id;
extern int ignore_errors;
-@@ -77,11 +80,14 @@ static void delete_one(char *fn, int is_
+@@ -78,11 +81,14 @@ static void delete_one(char *fn, int is_
}
}
}
-@@ -122,10 +128,11 @@ void delete_files(struct file_list *flis
- continue;
+@@ -124,11 +130,12 @@ void delete_files(struct file_list *flis
if (flist_find(flist,local_file_list->files[i]) < 0) {
char *f = f_name(local_file_list->files[i]);
-- if (make_backups && (backup_dir || !is_backup_file(f))) {
-- make_backup(f);
+ int mode = local_file_list->files[i]->mode;
+- if (make_backups && (backup_dir || !is_backup_file(f))
+ int backup_file = is_backup_file(f);
-+ if (make_backups && (delete_dir || !backup_file)) {
++ if (make_backups && (delete_dir || !backup_file)
+ && !S_ISDIR(mode)) {
+- make_backup(f);
+ safe_delete(f);
if (verbose) {
- rprintf(FINFO, "deleting %s\n",
+ rprintf(FINFO, "safe-deleting %s\n",
safe_fname(f));
}
- } else {
+ } else