emacs-diffs
[Top][All Lists]
Advanced

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

master a256f49f08 5/6: Make image-dired-thumb-name more portable


From: Stefan Kangas
Subject: master a256f49f08 5/6: Make image-dired-thumb-name more portable
Date: Sun, 25 Sep 2022 08:46:26 -0400 (EDT)

branch: master
commit a256f49f0828a2069acc302dd11d78be2486b565
Author: Stefan Kangas <stefankangas@gmail.com>
Commit: Stefan Kangas <stefankangas@gmail.com>

    Make image-dired-thumb-name more portable
    
    * lisp/image/image-dired-util.el
    (image-dired-thumb-name): Create file names in a portable manner.
    * test/lisp/image/image-dired-util-tests.el
    (image-dired-thumb-name/standard)
    (image-dired-thumb-name/image-dired)
    (image-dired-thumb-name/per-directory): Expand tests.
---
 lisp/image/image-dired-util.el            | 25 ++++++++++++++-----------
 test/lisp/image/image-dired-util-tests.el | 14 ++++++++++++++
 2 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/lisp/image/image-dired-util.el b/lisp/image/image-dired-util.el
index f8e81d2e8d..e7d116d90b 100644
--- a/lisp/image/image-dired-util.el
+++ b/lisp/image/image-dired-util.el
@@ -85,19 +85,22 @@ See also `image-dired-thumbnail-storage'."
              ;; Maintained for backwards compatibility:
              (eq 'use-image-dired-dir image-dired-thumbnail-storage))
          (let* ((f (expand-file-name file))
-                (hash
-                 (md5 (file-name-as-directory (file-name-directory f)))))
-           (format "%s%s%s.thumb.%s"
-                   (file-name-as-directory (expand-file-name 
(image-dired-dir)))
-                   (file-name-base f)
-                   (if hash (concat "_" hash) "")
-                   (file-name-extension f))))
+                (hash (md5 (file-name-as-directory (file-name-directory f)))))
+           (expand-file-name
+            (format "%s%s.thumb.%s"
+                    (file-name-base f)
+                    (if hash (concat "_" hash) "")
+                    (file-name-extension f))
+            (image-dired-dir))))
         ((eq 'per-directory image-dired-thumbnail-storage)
          (let ((f (expand-file-name file)))
-           (format "%s.image-dired/%s.thumb.%s"
-                   (file-name-directory f)
-                   (file-name-base f)
-                   (file-name-extension f))))))
+           (expand-file-name
+            (format "%s.thumb.%s"
+                    (file-name-base f)
+                    (file-name-extension f))
+            (expand-file-name
+             ".image-dired"
+             (file-name-directory f)))))))
 
 (defvar image-dired-thumbnail-buffer "*image-dired*"
   "Image-Dired's thumbnail buffer.")
diff --git a/test/lisp/image/image-dired-util-tests.el 
b/test/lisp/image/image-dired-util-tests.el
index 39862fc6fa..9fb457dd36 100644
--- a/test/lisp/image/image-dired-util-tests.el
+++ b/test/lisp/image/image-dired-util-tests.el
@@ -28,6 +28,10 @@
 (ert-deftest image-dired-thumb-name/standard ()
   (let ((image-dired-thumbnail-storage 'standard))
     (should (file-name-absolute-p (image-dired-thumb-name "foo.jpg")))
+    (should (file-name-absolute-p (image-dired-thumb-name "/tmp/foo.jpg")))
+    (should (equal
+             (file-name-directory (image-dired-thumb-name "foo.jpg"))
+             (file-name-directory (image-dired-thumb-name "/tmp/foo.jpg"))))
     (should (string-search (xdg-cache-home)
                            (image-dired-thumb-name "foo.jpg")))
     (should (string-match (rx (in "0-9a-f") ".png")
@@ -39,6 +43,10 @@
     (let ((image-dired-dir dir)
           (image-dired-thumbnail-storage 'image-dired))
       (should (file-name-absolute-p (image-dired-thumb-name "foo.jpg")))
+      (should (file-name-absolute-p (image-dired-thumb-name "/tmp/foo.jpg")))
+      (should (equal
+               (file-name-directory (image-dired-thumb-name "foo.jpg"))
+               (file-name-directory (image-dired-thumb-name "/tmp/foo.jpg"))))
       (should (equal (file-name-nondirectory
                       ;; The checksum is based on the directory name.
                       (image-dired-thumb-name "/some/path/foo.jpg"))
@@ -47,6 +55,12 @@
 (ert-deftest image-dired-thumb-name/per-directory ()
   (let ((image-dired-thumbnail-storage 'per-directory))
     (should (file-name-absolute-p (image-dired-thumb-name "foo.jpg")))
+    (should (file-name-absolute-p (image-dired-thumb-name "/tmp/foo.jpg")))
+    (should (equal
+             (file-name-nondirectory (image-dired-thumb-name "foo.jpg"))
+             (file-name-nondirectory (image-dired-thumb-name "/tmp/foo.jpg"))))
+    (should (equal (file-name-split (image-dired-thumb-name "/tmp/foo.jpg"))
+                   '("" "tmp" ".image-dired" "foo.thumb.jpg")))
     (should (equal (file-name-nondirectory
                     (image-dired-thumb-name "foo.jpg"))
                    "foo.thumb.jpg"))))



reply via email to

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