emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/dired-duplicates b8df43a6a2 12/57: Always properly clea


From: ELPA Syncer
Subject: [elpa] externals/dired-duplicates b8df43a6a2 12/57: Always properly clean up separator file
Date: Sat, 4 Nov 2023 06:58:26 -0400 (EDT)

branch: externals/dired-duplicates
commit b8df43a6a266ad08c11ff7bab77458a4812f0f5b
Author: Harald Judt <h.judt@gmx.at>
Commit: Harald Judt <h.judt@gmx.at>

    Always properly clean up separator file
---
 find-dupes-dired.el | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/find-dupes-dired.el b/find-dupes-dired.el
index ff52cdc613..377bd34b16 100644
--- a/find-dupes-dired.el
+++ b/find-dupes-dired.el
@@ -47,7 +47,15 @@ ascending or descending order."
 
 (defun find-dupes--remove-separator-file ()
   "Remove the separator file specified by `find-dupes-separator-file'."
-  (delete-file find-dupes-separator-file nil))
+  (when (file-exists-p find-dupes-separator-file)
+    (delete-file find-dupes-separator-file nil)))
+
+(defmacro find-dupes-with-separator-file (&rest rest)
+  `(unwind-protect
+         (progn
+           (find-dupes--ensure-separator-file)
+           ,@rest)
+     (find-dupes--remove-separator-file)))
 
 (defun find-dupes--duplicate-files (directories)
   "Given one or more root directories, search inside below the
@@ -100,9 +108,8 @@ separator file specified by `find-dupes-separator-file'."
               (append (list (first dired-directory))
                       (find-dupes--generate-dired-list)))
   (message "Reverting buffer complete.")
-  (find-dupes--ensure-separator-file)
-  (dired-revert)
-  (find-dupes--remove-separator-file))
+  (find-dupes-with-separator-file
+   (dired-revert)))
 
 ;;;###autoload
 (defun find-dupes-dired (directories)
@@ -121,11 +128,10 @@ and show them in a dired buffer."
     (if-let ((results (find-dupes--generate-dired-list directories)))
         (progn
           (message "Finding duplicate files in %s completed." truncated-dirs)
-          (find-dupes--ensure-separator-file)
-          (dired (cons "/" results))
-          (setq-local find-dupes-directories directories)
-          (setq-local revert-buffer-function 'find-dupes-revert-function)
-          (find-dupes--remove-separator-file))
+          (find-dupes-with-separator-file
+           (dired (cons "/" results))
+           (setq-local find-dupes-directories directories)
+           (setq-local revert-buffer-function 'find-dupes-revert-function)))
       (message "No duplicate files found in %s." truncated-dirs))))
 
 (provide 'find-dupes-dired)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]