+++
*** '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
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.")
(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))