1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-27 10:54:40 +00:00

(vc-follow-link, vc-find-file-hook):

Use file-chase-links instead of file-truename.
(vc-find-file-hook): Follow a link without asking
if the target is already visited.
This commit is contained in:
Richard M. Stallman 1996-05-05 03:52:13 +00:00
parent d63a6ae0d0
commit 566f2169f2

View File

@ -924,7 +924,7 @@ control system name."
;; visit the real file instead. If the real file is already visited in
;; another buffer, make that buffer current, and kill the buffer
;; that visits the link.
(let* ((truename (abbreviate-file-name (file-truename buffer-file-name)))
(let* ((truename (abbreviate-file-name (file-chase-links buffer-file-name)))
(true-buffer (find-buffer-visiting truename))
(this-buffer (current-buffer)))
(if (eq true-buffer this-buffer)
@ -958,7 +958,18 @@ control system name."
(cond ((eq vc-follow-symlinks nil)
(message
"Warning: symbolic link to %s-controlled source file" link-type))
((eq vc-follow-symlinks 'ask)
((or (not (eq vc-follow-symlinks 'ask))
;; If we already visited this file by following
;; the link, don't ask again if we try to visit
;; it again. GUD does that, and repeated questions
;; are painful.
(get-file-buffer
(abbreviate-file-name (file-chase-links buffer-file-name))))
(vc-follow-link)
(message "Followed link to %s" buffer-file-name)
(vc-find-file-hook))
(t
(if (yes-or-no-p (format
"Symbolic link to %s-controlled source file; follow link? " link-type))
(progn (vc-follow-link)
@ -966,10 +977,7 @@ control system name."
(vc-find-file-hook))
(message
"Warning: editing through the link bypasses version control")
))
(t (vc-follow-link)
(message "Followed link to %s" buffer-file-name)
(vc-find-file-hook))))))))))
))))))))))
(add-hook 'find-file-hooks 'vc-find-file-hook)