Find rcs2log in the source-directory when running uninstalled

This is preparation for getting rid of lib-src's "stamp-*" files.

* lisp/vc/vc-rcs.el (vc-rcs-rcs2log-program): New.
(vc-rcs-update-changelog): Use it.
This commit is contained in:
Glenn Morris 2012-06-05 21:28:08 -04:00
parent 276d5f5de5
commit f7dd4e98e4
2 changed files with 22 additions and 4 deletions

View file

@ -1,5 +1,8 @@
2012-06-06 Glenn Morris <rgm@gnu.org>
* vc/vc-rcs.el (vc-rcs-rcs2log-program): New.
(vc-rcs-update-changelog): Use it.
* emacs-lisp/authors.el (authors-fixed-entries): Remove vcdiff
* vc/vc-sccs.el (vc-sccs-write-revision): New function.

View file

@ -1,6 +1,6 @@
;;; vc-rcs.el --- support for RCS version-control
;; Copyright (C) 1992-2012 Free Software Foundation, Inc.
;; Copyright (C) 1992-2012 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
@ -868,6 +868,23 @@ and CVS."
(minor-num (string-to-number (vc-rcs-minor-part rev))))
(concat branch "." (number-to-string (1+ minor-num))))))
;; Note that most GNU/Linux distributions seem to supply rcs2log in a
;; standard bin directory. Eg both Red Hat and Debian include it in
;; their cvs packages. It's not obvious why Emacs still needs to
;; provide it as well...
(defvar vc-rcs-rcs2log-program
(let (exe)
(cond ((file-executable-p
(setq exe (expand-file-name "rcs2log" exec-directory)))
exe)
;; In the unlikely event that someone is running an
;; uninstalled Emacs and wants to do something RCS-related.
((file-executable-p
(setq exe (expand-file-name "lib-src/rcs2log" source-directory)))
exe)
(t "rcs2log")))
"Path to the `rcs2log' program (normally in `exec-directory').")
(defun vc-rcs-update-changelog (files)
"Default implementation of update-changelog.
Uses `rcs2log' which only works for RCS and CVS."
@ -898,9 +915,7 @@ Uses `rcs2log' which only works for RCS and CVS."
(unwind-protect
(progn
(setq default-directory odefault)
(if (eq 0 (apply 'call-process
(expand-file-name "rcs2log"
exec-directory)
(if (eq 0 (apply 'call-process vc-rcs-rcs2log-program
nil (list t tempfile) nil
"-c" changelog
"-u" (concat login-name