- if (!(flags & DEL_DIR)) {
- if (robust_unlink(fname) == 0) {
- if (verbose && !(flags & DEL_TERSE)) {
- rprintf(FINFO, "deleting %s\n",
- safe_fname(fname));
- }
+ if (max_delete && deletion_count >= max_delete)
+ return -1;
+
+ if (!S_ISDIR(mode)) {
+ int ok;
+ if (make_backups && (backup_dir || !is_backup_file(fname)))
+ ok = make_backup(fname);
+ else
+ ok = robust_unlink(fname) == 0;
+ if (ok) {
+ if ((verbose || log_format) && !(flags & DEL_TERSE))
+ log_delete(fname, mode);
+ deletion_count++;