Function: cvs-mode-edit-log

cvs-mode-edit-log is an interactive and byte-compiled function defined in pcvs.el.gz.

Signature

(cvs-mode-edit-log FILE REV &optional TEXT)

Documentation

Edit log message at point.

This is best called from a log-view-mode buffer.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/vc/pcvs.el.gz
(defun cvs-mode-edit-log (file rev &optional text)
  "Edit log message at point.
This is best called from a `log-view-mode' buffer."
  (interactive
   (list
    (or (cvs-mode! (lambda ()
                     (car (cvs-mode-files nil nil
                                          :read-only t :file t :noquery t))))
        (read-string "File name: "))
    (or (cvs-mode! (lambda () (cvs-prefix-get 'cvs-branch-prefix)))
	(read-string "Revision to edit: "))
    (cvs-edit-log-text-at-point)))
  ;; It seems that the save-excursion that happens if I use the better
  ;; form of `(cvs-mode! (lambda ...))' screws up a couple things which
  ;; end up being rather annoying (like log-edit-mode's message being
  ;; displayed in the wrong minibuffer).
  (cvs-mode!)
  (let ((buf (cvs-temp-buffer "message" 'normal 'nosetup))
	(setupfun (or (nth 2 (cdr (assoc "message" cvs-buffer-name-alist)))
		      'log-edit)))
    (with-current-buffer buf
      ;; Set the filename before, so log-edit can correctly setup its
      ;; log-edit-initial-files variable.
      (setq-local cvs-edit-log-files (list file)))
    (funcall setupfun 'cvs-do-edit-log nil
	     '((log-edit-listfun . cvs-edit-log-filelist)
	       (log-edit-diff-function . cvs-mode-diff))
	     buf)
    (when text (erase-buffer) (insert text))
    (setq-local cvs-edit-log-revision rev)
    (setq-local cvs-minor-wrap-function 'cvs-edit-log-minor-wrap)
    ;; (run-hooks 'cvs-mode-commit-hook)
    ))