diff options
author | Miles Bader <miles@gnu.org> | 2007-07-24 01:23:55 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2007-07-24 01:23:55 +0000 |
commit | 40f9398cdba874aa72fd1828534110caa34702be (patch) | |
tree | ba7af35a2e0a913ccb78095d130ec695e6bfeb97 /lisp/image-dired.el | |
parent | 22110b82771c73e38e4c637b90c5d01da3671c24 (diff) | |
parent | ccb0797a191047816dae47b2e0e7e751027bd0e8 (diff) | |
download | emacs-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.el | 23 |
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) |