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.