summaryrefslogtreecommitdiff
path: root/lisp/image-dired.el
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2007-07-24 01:23:55 +0000
committerMiles Bader <miles@gnu.org>2007-07-24 01:23:55 +0000
commit40f9398cdba874aa72fd1828534110caa34702be (patch)
treeba7af35a2e0a913ccb78095d130ec695e6bfeb97 /lisp/image-dired.el
parent22110b82771c73e38e4c637b90c5d01da3671c24 (diff)
parentccb0797a191047816dae47b2e0e7e751027bd0e8 (diff)
downloademacs-unicode-xft-base.tar.gz
Merge from emacs--devo--0unicode-xft-base
Patches applied: * emacs--devo--0 (patch 816-823) - Update from CVS - Merge from emacs--rel--22 * emacs--rel--22 (patch 59-69) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 237-238) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-235
Diffstat (limited to 'lisp/image-dired.el')
-rw-r--r--lisp/image-dired.el23
1 files changed, 23 insertions, 0 deletions
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index d520d99ea11..93c11813864 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -869,11 +869,28 @@ displayed."
;;;###autoload
(defalias 'tumme 'image-dired-show-all-from-dir)
+(defun image-dired-sane-db-file ()
+ "Check if `image-dired-db-file' exists.
+If not, try to create it (including any parent directories).
+Signal error if there are problems creating it."
+ (or (file-exists-p image-dired-db-file)
+ (let (dir buf)
+ (unless (file-directory-p (setq dir (file-name-directory
+ image-dired-db-file)))
+ (make-directory dir t))
+ (with-current-buffer (setq buf (create-file-buffer
+ image-dired-db-file))
+ (write-file image-dired-db-file))
+ (kill-buffer buf)
+ (file-exists-p image-dired-db-file))
+ (error "Could not create %s" image-dired-db-file)))
+
(defun image-dired-write-tags (file-tags)
"Write file tags to database.
Write each file and tag in FILE-TAGS to the database. FILE-TAGS
is an alist in the following form:
((FILE . TAG) ... )"
+ (image-dired-sane-db-file)
(let (end file tag)
(with-temp-file image-dired-db-file
(insert-file-contents image-dired-db-file)
@@ -893,6 +910,7 @@ is an alist in the following form:
(defun image-dired-remove-tag (files tag)
"For all FILES, remove TAG from the image database."
+ (image-dired-sane-db-file)
(save-excursion
(let (end buf start)
(setq buf (find-file image-dired-db-file))
@@ -927,6 +945,7 @@ is an alist in the following form:
(defun image-dired-list-tags (file)
"Read all tags for image FILE from the image database."
+ (image-dired-sane-db-file)
(save-excursion
(let (end buf (tags ""))
(setq buf (find-file image-dired-db-file))
@@ -2038,6 +2057,7 @@ function. The result is a couple of new files in
Write file comments to one or more files. FILE-COMMENTS is an alist on
the following form:
((FILE . COMMENT) ... )"
+ (image-dired-sane-db-file)
(let (end comment-beg-pos comment-end-pos file comment)
(with-temp-file image-dired-db-file
(insert-file-contents image-dired-db-file)
@@ -2108,6 +2128,7 @@ as initial value."
(defun image-dired-get-comment (file)
"Get comment for file FILE."
+ (image-dired-sane-db-file)
(save-excursion
(let (end buf comment-beg-pos comment-end-pos comment)
(setq buf (find-file image-dired-db-file))
@@ -2136,6 +2157,7 @@ lets you input a regexp and this will be matched against all tags
on all image files in the database file. The files that have a
matching tags will be marked in the dired buffer."
(interactive)
+ (image-dired-sane-db-file)
(let ((tag (read-string "Mark tagged files (regexp): "))
(hits 0)
files buf)
@@ -2300,6 +2322,7 @@ image-dired-file-comment-list:
(defun image-dired-create-gallery-lists ()
"Create temporary lists used by `image-dired-gallery-generate'."
+ (image-dired-sane-db-file)
(let ((buf (find-file image-dired-db-file))
end beg file row-tags)
(setq image-dired-tag-file-list nil)