summaryrefslogtreecommitdiff
path: root/lisp/thumbs.el
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2005-05-30 09:45:11 +0000
committerJuanma Barranquero <lekktu@gmail.com>2005-05-30 09:45:11 +0000
commit0df06447d496ba82bd595c1d272a8c9dcfb417b9 (patch)
tree9d92450fb3f18d2dae62294e6b30d02ea2762564 /lisp/thumbs.el
parentcfcd5c914a4b35939c62255e67e5a033aa7aa7e5 (diff)
downloademacs-0df06447d496ba82bd595c1d272a8c9dcfb417b9.tar.gz
(thumbs-thumbname): The resulting thubname includes a hash value to improve its
uniqueness, and has a ".jpg" extension. Also, it is now a valid filename on all systems. (thumbs-make-thumb): Use `let', not `let*'. (thumbs-show-thumbs-list): Check for JPEG availability.
Diffstat (limited to 'lisp/thumbs.el')
-rw-r--r--lisp/thumbs.el26
1 files changed, 15 insertions, 11 deletions
diff --git a/lisp/thumbs.el b/lisp/thumbs.el
index 1657c4b01a9..03491873c9d 100644
--- a/lisp/thumbs.el
+++ b/lisp/thumbs.el
@@ -302,18 +302,21 @@ Or, alternatively, a SIZE may be specified."
(defun thumbs-thumbname (img)
"Return a thumbnail name for the image IMG."
- (concat thumbs-thumbsdir "/"
- (subst-char-in-string
- ?\ ?\_
- (apply
- 'concat
- (split-string
- (expand-file-name img) "/")))))
+ (convert-standard-filename
+ (let ((filename (expand-file-name img)))
+ (format "%s/%08x-%s.jpg"
+ thumbs-thumbsdir
+ (sxhash filename)
+ (subst-char-in-string
+ ?\s ?\_
+ (apply
+ 'concat
+ (split-string filename "/")))))))
(defun thumbs-make-thumb (img)
"Create the thumbnail for IMG."
- (let* ((fn (expand-file-name img))
- (tn (thumbs-thumbname img)))
+ (let ((fn (expand-file-name img))
+ (tn (thumbs-thumbname img)))
(if (or (not (file-exists-p tn))
;; This is not the right fix, but I don't understand
;; the external program or why it produces a geometry
@@ -378,8 +381,9 @@ If MARKED is non-nil, the image is marked."
(unless (bobp) (newline))))
(defun thumbs-show-thumbs-list (L &optional buffer-name same-window)
- (when (not (display-images-p))
- (error "Images are not supported in this Emacs session"))
+ (unless (and (display-images-p)
+ (image-type-available-p 'jpeg))
+ (error "Required image type is not supported in this Emacs session"))
(funcall (if same-window 'switch-to-buffer 'pop-to-buffer)
(or buffer-name "*THUMB-View*"))
(let ((inhibit-read-only t))