diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-05-05 03:52:13 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-05-05 03:52:13 +0000 |
commit | 12a2eb4986ddbfe8d63b8858e3bdb5d172a19175 (patch) | |
tree | da36e904d0e12bac2eb9d23c8b3f8c6f08c5891e /lisp/vc-hooks.el | |
parent | bb7d57d58b1b795eee2e9e902bc2a8b5d63da246 (diff) | |
download | emacs-12a2eb4986ddbfe8d63b8858e3bdb5d172a19175.tar.gz |
(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.
Diffstat (limited to 'lisp/vc-hooks.el')
-rw-r--r-- | lisp/vc-hooks.el | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el index 43065a2ddbc..38b91ddef85 100644 --- a/lisp/vc-hooks.el +++ b/lisp/vc-hooks.el @@ -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) |