Function: vc-rcs-update-changelog
vc-rcs-update-changelog is a byte-compiled function defined in
vc-rcs.el.gz.
Signature
(vc-rcs-update-changelog FILES)
Documentation
Default implementation of update-changelog.
Uses rcs2log which only works for RCS and CVS.
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-rcs.el.gz
(defun vc-rcs-update-changelog (files)
"Default implementation of update-changelog.
Uses `rcs2log' which only works for RCS and CVS."
;; FIXME: We (c|sh)ould add support for cvs2cl
(let ((odefault default-directory)
(changelog (find-change-log))
;; Presumably not portable to non-Unixy systems, along with rcs2log:
(tempfile (make-temp-file
(expand-file-name "vc"
(or small-temporary-file-directory
temporary-file-directory))))
(login-name (or user-login-name
(format "uid%d" (number-to-string (user-uid)))))
(full-name (or add-log-full-name
(user-full-name)
(user-login-name)
(format "uid%d" (number-to-string (user-uid)))))
(mailing-address (or add-log-mailing-address
user-mail-address)))
(find-file-other-window changelog)
(barf-if-buffer-read-only)
(vc-buffer-sync)
(undo-boundary)
(goto-char (point-min))
(push-mark)
(message "Computing change log entries...")
(message "Computing change log entries... %s"
(unwind-protect
(progn
(setq default-directory odefault)
(if (eq 0 (apply #'call-process vc-rcs-rcs2log-program
nil (list t tempfile) nil
"-c" changelog
"-u" (concat login-name
"\t" full-name
"\t" mailing-address)
(mapcar
(lambda (f)
(file-relative-name
(expand-file-name f odefault)))
files)))
"done"
(pop-to-buffer (get-buffer-create "*vc*"))
(erase-buffer)
(insert-file-contents tempfile)
"failed"))
(setq default-directory (file-name-directory changelog))
(delete-file tempfile)))))