changeset 53161:779a274d72ed

iswitchb-read-buffer: check that iswitchb-exit is not 'usefirst (set when user presses RETURN to select buffer) before running: ;; This happens for example if the buffer was chosen with the mouse. (setq iswitchb-matches (list iswitchb-final-text))) iswitchb-exit-minibuffer: set iswitchb-exit to 'usefirst. These changes were made to fix the following bug reported by Markus Rost and John Wiegley: Evaluate: (progn (iswitchb-mode 1) (get-buffer-create "12") (get-buffer-create "1") (iswitchb-buffer)) You get prompted in the minibuffer. Type "1". The minibuffer shows iswitch 1{12,1} Hit RET. You find yourself in buffer "1" instead of "12", as you would expect from the documentation. This bug was introduced when iswitchb-read-buffer was updated to allow user to select items from the *Completions* buffer with the mouse.
author Stephen Eglen <stephen@gnu.org>
date Tue, 25 Nov 2003 14:37:44 +0000
parents f71ce92df3cb
children 9ef6052ba695
files lisp/iswitchb.el
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/iswitchb.el	Tue Nov 25 12:22:08 2003 +0000
+++ b/lisp/iswitchb.el	Tue Nov 25 14:37:44 2003 +0000
@@ -610,7 +610,8 @@
 				 nil	;require-match [handled elsewhere]
 				 nil	;initial-contents
 				 'iswitchb-history)))
-    (if (get-buffer iswitchb-final-text)
+    (if (and (not (eq iswitchb-exit 'usefirst))
+	     (get-buffer iswitchb-final-text))
 	;; This happens for example if the buffer was chosen with the mouse.
 	(setq iswitchb-matches (list iswitchb-final-text)))
 
@@ -712,7 +713,9 @@
   (interactive)
   (if (or (not iswitchb-require-match)
 	   (iswitchb-existing-buffer-p))
-      (throw 'exit nil)))
+      (progn
+	(setq iswitchb-exit 'usefirst)
+	(throw 'exit nil))))
 
 (defun iswitchb-select-buffer-text ()
   "Select the buffer named by the prompt.