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

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

[elpa] externals/dired-duplicates c1dbfc5bcd 53/57: Improve error handli


From: ELPA Syncer
Subject: [elpa] externals/dired-duplicates c1dbfc5bcd 53/57: Improve error handling of checksum program
Date: Sat, 4 Nov 2023 06:58:31 -0400 (EDT)

branch: externals/dired-duplicates
commit c1dbfc5bcd3c87fc42389ac63e2308ff21c674f2
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Harald Judt <h.judt@gmx.at>

    Improve error handling of checksum program
    
    Signed-off-by: Harald Judt <h.judt@gmx.at>
---
 dired-duplicates.el | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/dired-duplicates.el b/dired-duplicates.el
index d886abcda3..ce6b7b21d2 100644
--- a/dired-duplicates.el
+++ b/dired-duplicates.el
@@ -98,14 +98,17 @@ return boolean t if the file matches a criteria, otherwise 
nil."
 
 The executable used is defined by `dired-duplicates-checksum-exec'."
   (let* ((default-directory (file-name-directory (expand-file-name file)))
-         (exec (executable-find dired-duplicates-checksum-exec t)))
+         (exec (executable-find dired-duplicates-checksum-exec t))
+         (file (expand-file-name (file-local-name file))))
     (unless exec
-      (user-error "Checksum program %s not found in exec-path" exec))
-    (car (split-string
-          (shell-command-to-string
-           (concat exec " \"" (expand-file-name (file-local-name file)) "\""))
-          nil
-          t))))
+      (user-error "Checksum program %s not found in `exec-path'" exec))
+    (with-temp-buffer
+      (unless (zerop (call-process exec nil t nil file))
+        (error "Failed to start checksum program %s" exec))
+      (goto-char (point-min))
+      (if (looking-at "\\`[[:alnum:]]+")
+          (match-string 0)
+        (error "Unexpected output from checksum program %s" exec)))))
 
 (defun dired-duplicates--apply-file-filter-functions (files)
   "Apply file filter functions to FILES, returning the resulting list."



reply via email to

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