summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorStephen Eglen <stephen@gnu.org>2009-09-15 11:38:15 +0000
committerStephen Eglen <stephen@gnu.org>2009-09-15 11:38:15 +0000
commit4078fd57bae25df45ab41082275f9c488d49ef2f (patch)
tree4a37f01b4256a289b8c9dee10a710dd34e8561fa /lisp
parenta2c145f68f6588120f3f4a5feadf8e1c80481e3a (diff)
downloademacs-4078fd57bae25df45ab41082275f9c488d49ef2f.tar.gz
emacs-4078fd57bae25df45ab41082275f9c488d49ef2f.tar.bz2
emacs-4078fd57bae25df45ab41082275f9c488d49ef2f.zip
(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.)
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/iswitchb.el9
2 files changed, 13 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5545992e8e2..532c89656c1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2009-09-15 Stephen Eglen <stephen@gnu.org>
+
+ * iswitchb.el (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.)
+
2009-09-15 Stefan Monnier <monnier@iro.umontreal.ca>
* custom.el (custom-initialize-default, custom-initialize-set): CSE.
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index 802b45d23b1..8a800143bd2 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -657,9 +657,12 @@ the selection process begins. Used by isearchb.el."
;; 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.