rprintf(FINFO, "deleting in %s\n", safe_fname(fbuf));
for (i = local_file_list->count-1; i >= 0; i--) {
- if (max_delete && deletion_count > max_delete)
+ if (max_delete && deletion_count >= max_delete)
break;
if (!local_file_list->files[i]->basename)
continue;
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))) {
+ int mode = local_file_list->files[i]->mode;
+ if (make_backups && (backup_dir || !is_backup_file(f))
+ && !S_ISDIR(mode)) {
make_backup(f);
if (verbose) {
rprintf(FINFO, "deleting %s\n",
safe_fname(f));
}
- } else {
- int mode = local_file_list->files[i]->mode;
+ } else
delete_one(f, S_ISDIR(mode) != 0);
- }
deletion_count++;
}
}