Remember log-edit comment when the buffer is killed
authorDmitry Gutov <dgutov@yandex.ru>
Wed, 4 Dec 2013 00:37:33 +0000 (02:37 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Wed, 4 Dec 2013 00:37:33 +0000 (02:37 +0200)
* lisp/vc/log-edit.el (log-edit-add-new-comment): Rename to
`log-edit-remember-comment', make argument optional.  Adjust all
callers.
(log-edit-mode): Add `log-edit-remember-comment' to
`kill-buffer-hook' locally.
(log-edit-kill-buffer): Don't remember comment explicitly since
the buffer is killed anyway.

lisp/ChangeLog
lisp/vc/log-edit.el

index 530a701..b18de86 100644 (file)
@@ -1,3 +1,13 @@
+2013-12-04  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * vc/log-edit.el (log-edit-add-new-comment): Rename to
+       `log-edit-remember-comment', make argument optional.  Adjust all
+       callers.
+       (log-edit-mode): Add `log-edit-remember-comment' to
+       `kill-buffer-hook' locally.
+       (log-edit-kill-buffer): Don't remember comment explicitly since
+       the buffer is killed anyway.
+
 2013-12-04  Juri Linkov  <juri@jurta.org>
 
        * isearch.el (isearch-mode, isearch-done): Don't set arg LOCAL in
index 7f66f73..91390fa 100644 (file)
@@ -476,6 +476,7 @@ commands (under C-x v for VC, for example).
   (set (make-local-variable 'font-lock-defaults)
        '(log-edit-font-lock-keywords t))
   (make-local-variable 'log-edit-comment-ring-index)
+  (add-hook 'kill-buffer-hook 'log-edit-remember-comment nil t)
   (hack-dir-local-variables-non-file-buffer))
 
 (defun log-edit-hide-buf (&optional buf where)
@@ -488,7 +489,8 @@ commands (under C-x v for VC, for example).
         (if win (ignore-errors (delete-window win))))
       (bury-buffer buf))))
 
-(defun log-edit-add-new-comment (comment)
+(defun log-edit-remember-comment (&optional comment)
+  (unless comment (setq comment (buffer-string)))
   (when (or (ring-empty-p log-edit-comment-ring)
             (not (equal comment (ring-ref log-edit-comment-ring 0))))
     (ring-insert log-edit-comment-ring comment)))
@@ -524,7 +526,7 @@ If you want to abort the commit, simply delete the buffer."
       (save-excursion
        (goto-char (point-max))
        (insert ?\n)))
-  (log-edit-add-new-comment (buffer-string))
+  (log-edit-remember-comment)
   (let ((win (get-buffer-window log-edit-files-buf)))
     (if (and log-edit-confirm
             (not (and (eq log-edit-confirm 'changed)
@@ -545,7 +547,6 @@ If you want to abort the commit, simply delete the buffer."
 Also saves its contents in the comment history and hides
 `log-edit-files-buf'."
   (interactive)
-  (log-edit-add-new-comment (buffer-string))
   (log-edit-hide-buf)
   (let ((buf (current-buffer)))
     (quit-windows-on buf)
@@ -659,7 +660,7 @@ can thus take some time."
 (defun log-edit-add-to-changelog ()
   "Insert this log message into the appropriate ChangeLog file."
   (interactive)
-  (log-edit-add-new-comment (buffer-string))
+  (log-edit-remember-comment)
   (dolist (f (log-edit-files))
     (let ((buffer-file-name (expand-file-name f)))
       (save-excursion