From 5d35f104b307cfa49b4f371cecdb56a6dbdc7f2e Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Sat, 9 Feb 2019 21:33:05 -0800 Subject: [PATCH] File moves: unlock source files as needed to delete --- RELEASE-NOTES.md | 2 +- desktop/desktop_main.s | 28 +++++++++++++++++++--------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index fef424b..68d0193 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -85,7 +85,7 @@ file, then select the appropriate command from the Apple menu. * Selector app is unmodified. * Special > Disk Copy app is unmodified, and may suffer bugs fixed in DeskTop (e.g. SmartPort behavior) - +* Locked files are moved without prompting. # 1.1 diff --git a/desktop/desktop_main.s b/desktop/desktop_main.s index 1b778d9..9014a03 100644 --- a/desktop/desktop_main.s +++ b/desktop/desktop_main.s @@ -11158,9 +11158,12 @@ copy_pop_directory: @retry: MLI_RELAY_CALL DESTROY, destroy_params beq done cmp #ERR_ACCESS_ERROR - ;; TODO: if ERR_ACCESS_ERROR, unlock (or prompt) - beq done - jsr show_error_alert + bne :+ + jsr unlock_src_file + beq @retry + bne done ; silently leave file + +: jsr show_error_alert jmp @retry done: rts .endproc @@ -11664,7 +11667,18 @@ retry: MLI_RELAY_CALL DESTROY, destroy_params bne do_it ; always : jmp close_files_cancel_dialog -do_it: MLI_RELAY_CALL GET_FILE_INFO, src_file_info_params +do_it: jsr unlock_src_file + bne done + jmp retry + +done: rts + +error: jsr show_error_alert + jmp retry +.endproc + +.proc unlock_src_file + MLI_RELAY_CALL GET_FILE_INFO, src_file_info_params lda src_file_info_params::access and #$80 bne done @@ -11673,12 +11687,8 @@ do_it: MLI_RELAY_CALL GET_FILE_INFO, src_file_info_params copy #7, src_file_info_params ; param count for SET_FILE_INFO MLI_RELAY_CALL SET_FILE_INFO, src_file_info_params copy #$A, src_file_info_params ; param count for GET_FILE_INFO - jmp retry - + lda #0 ; success done: rts - -error: jsr show_error_alert - jmp retry .endproc ;;; ============================================================