Function: image-dired-write-comments
image-dired-write-comments is a byte-compiled function defined in
image-dired-tags.el.gz.
Signature
(image-dired-write-comments FILE-COMMENTS)
Documentation
Write file comments specified by FILE-COMMENTS comments to database.
FILE-COMMENTS is an alist on the following form:
((FILE . COMMENT) ... )
Source Code
;; Defined in /usr/src/emacs/lisp/image/image-dired-tags.el.gz
(defun image-dired-write-comments (file-comments)
"Write file comments specified by FILE-COMMENTS comments to database.
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)
(image-dired--with-db-file
(setq buffer-file-name image-dired-tags-db-file)
(dolist (elt file-comments)
(setq file (car elt)
comment (cdr elt))
(goto-char (point-min))
(if (search-forward-regexp (format "^%s.*$" (regexp-quote file)) nil t)
(progn
(setq end (point))
(beginning-of-line)
;; Delete old comment, if any
(when (search-forward ";comment:" end t)
(setq comment-beg-pos (match-beginning 0))
;; Any tags after the comment?
(if (search-forward ";" end t)
(setq comment-end-pos (- (point) 1))
(setq comment-end-pos end))
;; Delete comment tag and comment
(delete-region comment-beg-pos comment-end-pos))
;; Insert new comment
(beginning-of-line)
(unless (search-forward ";" end t)
(end-of-line)
(insert ";"))
(insert (format "comment:%s;" comment)))
;; File does not exist in database - add it.
(goto-char (point-max))
(insert (format "%s;comment:%s\n" file comment))))
(save-buffer))))