# HG changeset patch # User Mathias Dahl # Date 1153757446 0 # Node ID 585ed6ff296a2b847a0f7129b6b5b0b1942ab617 # Parent 2d3129f3f8a05bc7401a9c8f1cf807378c43ae5c (tumme-write-tags): Add. (tumme-write-comments): Add. diff -r 2d3129f3f8a0 -r 585ed6ff296a lisp/tumme.el --- a/lisp/tumme.el Mon Jul 24 16:09:33 2006 +0000 +++ b/lisp/tumme.el Mon Jul 24 16:10:46 2006 +0000 @@ -2074,6 +2074,41 @@ (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))