Function: add-log-file-name
add-log-file-name is a byte-compiled function defined in
add-log.el.gz.
Signature
(add-log-file-name BUFFER-FILE LOG-FILE)
Documentation
Compute file-name of BUFFER-FILE to be used in entries in LOG-FILE.
Source Code
;; Defined in /usr/src/emacs/lisp/vc/add-log.el.gz
(defun add-log-file-name (buffer-file log-file)
"Compute file-name of BUFFER-FILE to be used in entries in LOG-FILE."
;; Never want to add a change log entry for the ChangeLog file itself.
(unless (or (null buffer-file) (string= buffer-file log-file))
(if add-log-file-name-function
(funcall add-log-file-name-function buffer-file)
(setq buffer-file
(let* ((dir (file-name-directory log-file))
(rel (file-relative-name buffer-file dir)))
;; Sometimes with symlinks, the two buffers may have names that
;; appear to belong to different directory trees. So check the
;; file-truenames, to see if we get a better result.
(if (not (string-match "\\`\\.\\./" rel))
rel
(let ((new (file-relative-name (file-truename buffer-file)
(file-truename dir))))
(if (< (length new) (length rel))
new rel)))))
;; If we have a backup file, it's presumably because we're
;; comparing old and new versions (e.g. for deleted
;; functions) and we'll want to use the original name.
(if (backup-file-name-p buffer-file)
(file-name-sans-versions buffer-file)
buffer-file))))