-
-@@ -124,8 +131,8 @@ static int delete_item(char *fname, int
- if (!S_ISDIR(mode)) {
- if (max_delete && ++deletion_count > max_delete)
- return 0;
-- if (make_backups && (backup_dir || !is_backup_file(fname)))
-- ok = make_backup(fname);
-+ if (make_backups && (backup_dir_dels || !is_backup_file(fname)))
-+ ok = safe_delete(fname);
- else
- ok = robust_unlink(fname) == 0;
- if (ok) {
-@@ -147,9 +154,9 @@ static int delete_item(char *fname, int
- || (dry_run && zap_dir)) {
- ok = 0;
- errno = ENOTEMPTY;
-- } else if (make_backups && !backup_dir && !is_backup_file(fname)
-+ } else if (make_backups && !backup_dir_dels && !is_backup_file(fname)
- && !(flags & DEL_FORCE_RECURSE))
-- ok = make_backup(fname);
-+ ok = safe_delete(fname);
- else
- ok = do_rmdir(fname) == 0;
- if (ok) {
---- old/options.c
-+++ new/options.c
-@@ -138,10 +138,14 @@ int no_detach
+ /* The directory is about to be deleted: if DEL_RECURSE is given, delete all
+@@ -170,9 +177,9 @@ enum delret delete_item(char *fbuf, uint16 mode, uint16 flags)
+ what = "rmdir";
+ ok = do_rmdir(fbuf) == 0;
+ } else {
+- if (make_backups > 0 && (backup_dir || !is_backup_file(fbuf))) {
++ if (make_backups > 0 && (backup_dir_dels || !is_backup_file(fbuf))) {
+ what = "make_backup";
+- ok = make_backup(fbuf, True);
++ ok = safe_delete(fbuf);
+ if (ok == 2) {
+ what = "unlink";
+ ok = robust_unlink(fbuf) == 0;
+diff --git a/options.c b/options.c
+index e7c6c61..37e4086 100644
+--- a/options.c
++++ b/options.c
+@@ -151,10 +151,14 @@ int no_detach