Mercurial > emacs
changeset 105036:6fbde1155ee5
(iswitchb-read-buffer): When selecting a match from
the virtual-buffers, use the name of the buffer specified by
find-file-noselect, as the match may be a symlink. (This was a
problem if the target and the symlink had differet names.)
author | Stephen Eglen <stephen@gnu.org> |
---|---|
date | Tue, 15 Sep 2009 11:38:07 +0000 |
parents | a07fd035c1b0 |
children | abf8556ca6db |
files | lisp/iswitchb.el |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/iswitchb.el Tue Sep 15 08:11:42 2009 +0000 +++ b/lisp/iswitchb.el Tue Sep 15 11:38:07 2009 +0000 @@ -657,9 +657,12 @@ ;; that file now and act as though that buffer had been selected. (if (and iswitchb-virtual-buffers (not (iswitchb-existing-buffer-p))) - (let ((virt (car iswitchb-virtual-buffers))) - (find-file-noselect (cdr virt)) - (setq iswitchb-matches (list (car virt)) + (let ((virt (car iswitchb-virtual-buffers)) + (new-buf)) + ;; Keep the name of the buffer returned by find-file-noselect, as + ;; the buffer 'virt' could be a symlink to a file of a different name. + (setq new-buf (buffer-name (find-file-noselect (cdr virt)))) + (setq iswitchb-matches (list new-buf) iswitchb-virtual-buffers nil))) ;; Handling the require-match must be done in a better way.