summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2011-04-07 20:21:30 -0700
committerGlenn Morris <rgm@gnu.org>2011-04-07 20:21:30 -0700
commitb605679c8e9d7bbf497bafce77a014eaa485fa34 (patch)
tree5b93ee5b8ca741b85dc29a7d4db8ea6d9292673b /lisp
parent56442f0c3d102cfae04ae5fed45152d18c20fadf (diff)
downloademacs-b605679c8e9d7bbf497bafce77a014eaa485fa34.tar.gz
emacs-b605679c8e9d7bbf497bafce77a014eaa485fa34.tar.bz2
emacs-b605679c8e9d7bbf497bafce77a014eaa485fa34.zip
log-edit.el fix for bug#7598.
* lisp/vc/log-edit.el (log-edit-empty-buffer-p): New function. (log-edit-insert-cvs-template, log-edit-insert-cvs-rcstemplate): Use log-edit-empty-buffer-p.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/vc/log-edit.el17
2 files changed, 19 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ae36e174b96..6e13e1e836d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,9 @@
2011-04-08 Glenn Morris <rgm@gnu.org>
+ * vc/log-edit.el (log-edit-empty-buffer-p): New function.
+ (log-edit-insert-cvs-template, log-edit-insert-cvs-rcstemplate):
+ Use log-edit-empty-buffer-p. (Bug#7598)
+
* net/rlogin.el (rlogin-process-connection-type): Simplify.
(rlogin-mode-map): Initialize in the defvar.
(rlogin): Use ignore-errors.
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index 54a2cb4f196..b3f5cfb78f7 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -531,13 +531,25 @@ If you want to abort the commit, simply delete the buffer."
(shrink-window-if-larger-than-buffer)
(selected-window)))))
+(defun log-edit-empty-buffer-p ()
+ "Return non-nil if the buffer is \"empty\"."
+ (or (= (point-min) (point-max))
+ (save-excursion
+ (goto-char (point-min))
+ (while (and (looking-at "^\\(Summary: \\)?$")
+ (zerop (forward-line 1))))
+ (eobp))))
+
(defun log-edit-insert-cvs-template ()
"Insert the template specified by the CVS administrator, if any.
This simply uses the local CVS/Template file."
(interactive)
(when (or (called-interactively-p 'interactive)
- (= (point-min) (point-max)))
+ (log-edit-empty-buffer-p))
+ ;; Should the template take precedence over an empty Summary:,
+ ;; ie should we first erase the buffer?
(when (file-readable-p "CVS/Template")
+ (goto-char (point-max))
(insert-file-contents "CVS/Template"))))
(defun log-edit-insert-cvs-rcstemplate ()
@@ -546,8 +558,9 @@ This contacts the repository to get the rcstemplate file and
can thus take some time."
(interactive)
(when (or (called-interactively-p 'interactive)
- (= (point-min) (point-max)))
+ (log-edit-empty-buffer-p))
(when (file-readable-p "CVS/Root")
+ (goto-char (point-max))
;; Ignore the stderr stuff, even if it's an error.
(call-process "cvs" nil '(t nil) nil
"checkout" "-p" "CVSROOT/rcstemplate"))))