From b605679c8e9d7bbf497bafce77a014eaa485fa34 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 7 Apr 2011 20:21:30 -0700 Subject: [PATCH] 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. --- lisp/ChangeLog | 4 ++++ lisp/vc/log-edit.el | 17 +++++++++++++++-- 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 + * 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")))) -- 2.39.2