From: Mathias Dahl Date: Mon, 24 Jul 2006 16:11:01 +0000 (+0000) Subject: (tumme-write-tags): Add. X-Git-Tag: emacs-pretest-22.0.90~1273 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=231b0d1cd9e088ab0192f712b91651a1a894197f;p=emacs.git (tumme-write-tags): Add. (tumme-write-comments): Add. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 83f286d3704..5375b041930 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,6 +1,7 @@ 2006-07-24 mathias * tumme.el (tumme-write-tags): Add. + (tumme-write-comments): Add. 2006-07-24 mathias diff --git a/lisp/tumme.el b/lisp/tumme.el index 134420ddc91..7e3d83173a1 100644 --- a/lisp/tumme.el +++ b/lisp/tumme.el @@ -2074,6 +2074,41 @@ function. The result is a couple of new files in (save-buffer) (kill-buffer buf)))) +(defun tumme-write-comments (file-comments) + "Write file comments to database. +Write file comments to one or more files. FILE-COMMENTS is an alist on +the following form: + ((FILE . COMMENT) ... )" + (let (end comment-beg file comment) + (with-temp-file tumme-db-file + (insert-file-contents tumme-db-file) + (dolist (elt file-comments) + (setq file (car elt) + comment (cdr elt)) + (goto-char (point-min)) + (if (search-forward-regexp (format "^%s.*$" file) nil t) + (progn + (setq end (point)) + (beginning-of-line) + ;; Delete old comment, if any + (when (search-forward ";comment:" end t) + (setq comment-beg (match-beginning 0)) + ;; Any tags after the comment? + (if (search-forward ";" end t) + (setq comment-end (- (point) 1)) + (setq comment-end end)) + ;; Delete comment tag and comment + (delete-region comment-beg comment-end)) + ;; 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 "\n%s;comment:%s" file comment))))))) + (defun tumme-update-property (prop value) "Update text property PROP with value VALUE at point." (let ((inhibit-read-only t))