diff options
author | Juanma Barranquero <lekktu@gmail.com> | 2005-05-30 09:45:11 +0000 |
---|---|---|
committer | Juanma Barranquero <lekktu@gmail.com> | 2005-05-30 09:45:11 +0000 |
commit | 0df06447d496ba82bd595c1d272a8c9dcfb417b9 (patch) | |
tree | 9d92450fb3f18d2dae62294e6b30d02ea2762564 /lisp/thumbs.el | |
parent | cfcd5c914a4b35939c62255e67e5a033aa7aa7e5 (diff) | |
download | emacs-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.el | 26 |
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)) |