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))))