;;; thumbs.el --- Thumbnails previewer for images files
-;; Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca>
-;; Maintainer: FSF
+;; Maintainer: emacs-devel@gnu.org
;; Keywords: Multimedia
;; This file is part of GNU Emacs.
;; This package create two new modes: thumbs-mode and thumbs-view-image-mode.
;; It is used for basic browsing and viewing of images from within Emacs.
;; Minimal image manipulation functions are also available via external
-;; programs. If you want to do more complex tasks like categorise and tag
+;; programs. If you want to do more complex tasks like categorize and tag
;; your images, use image-dired.el
;;
;; The 'convert' program from 'ImageMagick'
;;; Code:
(require 'dired)
+(require 'cl-lib) ; for cl-gensym
;; CUSTOMIZATIONS
:version "22.1"
:group 'multimedia)
-(defcustom thumbs-thumbsdir (concat user-emacs-directory "thumbs")
- "*Directory to store thumbnails."
+(defcustom thumbs-thumbsdir (locate-user-emacs-file "thumbs")
+ "Directory to store thumbnails."
:type 'directory
:group 'thumbs)
(defcustom thumbs-geometry "100x100"
- "*Size of thumbnails."
+ "Size of thumbnails."
:type 'string
:group 'thumbs)
:group 'thumbs)
;; Unfortunately Windows XP has a program called CONVERT.EXE in
-;; C:/WINDOWS/SYSTEM32/ for partioning NTFS system. So Emacs
+;; C:/WINDOWS/SYSTEM32/ for partitioning NTFS systems. So Emacs
;; can find the one in your ImageMagick directory, you need to
;; customize this value to the absolute filename.
(defcustom thumbs-conversion-program
"convert.exe"
(or (executable-find "convert")
"/usr/X11R6/bin/convert"))
- "*Name of conversion program for thumbnails generation.
-It must be 'convert'."
+ "Name of conversion program for thumbnails generation.
+It must be \"convert\"."
:type 'string
:group 'thumbs)
:group 'thumbs)
(defcustom thumbs-relief 5
- "*Size of button-like border around thumbnails."
+ "Size of button-like border around thumbnails."
:type 'integer
:group 'thumbs)
(defcustom thumbs-margin 2
- "*Size of the margin around thumbnails.
+ "Size of the margin around thumbnails.
This is where you see the cursor."
:type 'integer
:group 'thumbs)
(make-variable-buffer-local 'thumbs-marked-list)
(put 'thumbs-marked-list 'permanent-local t)
-(defalias 'thumbs-gensym
- (if (fboundp 'gensym)
- 'gensym
- ;; Copied from cl-macs.el
- (defvar thumbs-gensym-counter 0)
- (lambda (&optional prefix)
- "Generate a new uninterned symbol.
-The name is made by appending a number to PREFIX, default \"G\"."
- (let ((pfix (if (stringp prefix) prefix "G"))
- (num (if (integerp prefix) prefix
- (prog1 thumbs-gensym-counter
- (setq thumbs-gensym-counter
- (1+ thumbs-gensym-counter))))))
- (make-symbol (format "%s%d" pfix num))))))
-
(defsubst thumbs-temp-dir ()
(file-name-as-directory (expand-file-name thumbs-temp-dir)))
(format "%s%s-%s.jpg"
(thumbs-temp-dir)
thumbs-temp-prefix
- (thumbs-gensym "T")))
+ (cl-gensym "T")))
(defun thumbs-thumbsdir ()
"Return the current thumbnails directory (from `thumbs-thumbsdir').
(let ((fattribs-list (file-attributes f)))
`(,(nth 4 fattribs-list) ,(nth 7 fattribs-list) ,f)))
(directory-files (thumbs-thumbsdir) t (image-file-name-regexp)))
- '(lambda (l1 l2) (time-less-p (car l1) (car l2)))))
+ (lambda (l1 l2) (time-less-p (car l1) (car l2)))))
(dirsize (apply '+ (mapcar (lambda (x) (cadr x)) files-list))))
(while (> dirsize thumbs-thumbsdir-max-size)
(progn
(setq dirsize (- dirsize (car (cdar files-list))))
(setq files-list (cdr files-list)))))
-;; Check the thumbsnail directory size and clean it if necessary.
+;; Check the thumbnail directory size and clean it if necessary.
(when thumbs-thumbsdir-auto-clean
(thumbs-cleanup-thumbsdir))
ARG any arguments to the ACTION command,
OUTPUT-FORMAT is the file format to output (default is jpeg),
ACTION-PREFIX is the symbol to place before the ACTION command
- (defaults to '-' but can sometimes be '+')."
+ (defaults to `-' but can sometimes be `+')."
(call-process thumbs-conversion-program nil nil nil
(or action-prefix "-")
action
(provide 'thumbs)
-;; arch-tag: f9ac1ef8-83fc-42c0-8069-1fae43fd2e5c
;;; thumbs.el ends here