From: Glenn Morris Date: Fri, 8 Apr 2011 03:21:30 +0000 (-0700) Subject: log-edit.el fix for bug#7598. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~372 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b605679c8e9d7bbf497bafce77a014eaa485fa34;p=emacs.git 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. --- 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"))))