mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
image-dired: End thumbnail file names with ".jpg"
* lisp/image/image-dired-util.el (image-dired-thumb-name): Always end thumbnail name in ".jpg" and simplify naming to just use the SHA-1 hash. (Bug#57961) * test/lisp/image/image-dired-util-tests.el (image-dired-thumb-name/image-dired): Adjust test for the above change. * etc/NEWS: Announce the above change.
This commit is contained in:
parent
b5b59d1b8a
commit
6cffaa3b6d
3 changed files with 36 additions and 33 deletions
9
etc/NEWS
9
etc/NEWS
|
|
@ -2218,6 +2218,15 @@ nil to disable this confirmation completely.
|
|||
+++
|
||||
*** 'image-dired-db-file' renamed to 'image-dired-tags-db-file'.
|
||||
|
||||
---
|
||||
*** Naming of thumbnail files has changed.
|
||||
Thumbnail files generated when 'image-dired-thumbnail-storage' is
|
||||
'image-dired' now always end in ".jpg". This fixes various issues on
|
||||
different platforms, but means that thumbnails generated in Emacs 28
|
||||
will not be used in Emacs 29, and vice-versa. If disk space is an
|
||||
issue, consider deleting the directory 'image-dired-dir' after
|
||||
upgrading (usually "~/.emacs.d/image-dired/").
|
||||
|
||||
---
|
||||
*** 'image-dired-thumb-{height,width}' are now obsolete.
|
||||
Customize 'image-dired-thumb-size' instead, which will set both the
|
||||
|
|
|
|||
|
|
@ -70,37 +70,28 @@ file name of the thumbnail will vary:
|
|||
of the image file's directory name will be added to the
|
||||
filename.
|
||||
See also `image-dired-thumbnail-storage'."
|
||||
(cond ((memq image-dired-thumbnail-storage
|
||||
image-dired--thumbnail-standard-sizes)
|
||||
(let ((thumbdir (cl-case image-dired-thumbnail-storage
|
||||
(standard "thumbnails/normal")
|
||||
(standard-large "thumbnails/large")
|
||||
(standard-x-large "thumbnails/x-large")
|
||||
(standard-xx-large "thumbnails/xx-large"))))
|
||||
(expand-file-name
|
||||
;; MD5 is mandated by the Thumbnail Managing Standard.
|
||||
(concat (md5 (concat "file://" (expand-file-name file))) ".png")
|
||||
(expand-file-name thumbdir (xdg-cache-home)))))
|
||||
((or (eq 'image-dired 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)))))
|
||||
(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)))
|
||||
(expand-file-name
|
||||
(format "%s.thumb.%s"
|
||||
(file-name-base f)
|
||||
(file-name-extension f))
|
||||
(expand-file-name
|
||||
".image-dired"
|
||||
(file-name-directory f)))))))
|
||||
(let ((file (expand-file-name file)))
|
||||
(cond ((memq image-dired-thumbnail-storage
|
||||
image-dired--thumbnail-standard-sizes)
|
||||
(let ((thumbdir (cl-case image-dired-thumbnail-storage
|
||||
(standard "thumbnails/normal")
|
||||
(standard-large "thumbnails/large")
|
||||
(standard-x-large "thumbnails/x-large")
|
||||
(standard-xx-large "thumbnails/xx-large"))))
|
||||
(expand-file-name
|
||||
;; MD5 is mandated by the Thumbnail Managing Standard.
|
||||
(concat (md5 (concat "file://" file)) ".png")
|
||||
(expand-file-name thumbdir (xdg-cache-home)))))
|
||||
((or (eq 'image-dired image-dired-thumbnail-storage)
|
||||
;; Maintained for backwards compatibility:
|
||||
(eq 'use-image-dired-dir image-dired-thumbnail-storage))
|
||||
(expand-file-name (format "%s.jpg" (sha1 file))
|
||||
(image-dired-dir)))
|
||||
((eq 'per-directory image-dired-thumbnail-storage)
|
||||
(expand-file-name (format "%s.thumb.jpg" file)
|
||||
(expand-file-name
|
||||
".image-dired"
|
||||
(file-name-directory file)))))))
|
||||
|
||||
(defvar image-dired-thumbnail-buffer "*image-dired*"
|
||||
"Image-Dired's thumbnail buffer.")
|
||||
|
|
|
|||
|
|
@ -48,9 +48,12 @@
|
|||
(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.
|
||||
;; The checksum is based on the file name.
|
||||
(image-dired-thumb-name "/some/path/foo.jpg"))
|
||||
"foo_45fff7fcc4a0945679b7b11dec36a82d.thumb.jpg")))))
|
||||
"dc4e6f7068157023e7f2e8362d15bdd2e3ca89e4.jpg"))
|
||||
(should (equal (file-name-extension
|
||||
(image-dired-thumb-name "foo.gif"))
|
||||
"jpg")))))
|
||||
|
||||
(ert-deftest image-dired-thumb-name/per-directory ()
|
||||
(let ((image-dired-thumbnail-storage 'per-directory))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue