I realized that there were instances where --force could still be
[rsync/rsync.git] / generator.c
index 74cfd6a..44a097d 100644 (file)
@@ -45,6 +45,7 @@ extern int preserve_uid;
 extern int preserve_gid;
 extern int preserve_times;
 extern int omit_dir_times;
+extern int delete_mode;
 extern int delete_before;
 extern int delete_during;
 extern int delete_after;
@@ -144,7 +145,7 @@ static int delete_item(char *fname, int mode, int flags)
                return -1;
        }
 
-       zap_dir = flags & DEL_FORCE_RECURSE || (force_delete && recurse);
+       zap_dir = flags & DEL_FORCE_RECURSE || force_delete;
        if ((max_delete && ++deletion_count > max_delete)
            || (dry_run && zap_dir)) {
                ok = 0;
@@ -780,7 +781,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
        char *fnamecmp, *partialptr, *backupptr = NULL;
        char fnamecmpbuf[MAXPATHLEN];
        uchar fnamecmp_type;
-       int del_opts = DEL_TERSE | (delete_after ? DEL_FORCE_RECURSE : 0);
+       int del_opts = DEL_TERSE | (delete_mode ? DEL_FORCE_RECURSE : 0);
 
        if (list_only)
                return;