diff lisp/pcomplete.el @ 76349:df0cc74b8778

(pcomplete-show-completions): Improve last change, so as not to use an invisible window and to create a window if none exist.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 05 Mar 2007 19:57:10 +0000
parents 29d69dd0169c
children 7ce4823434db 91bf6e05918b
line wrap: on
line diff
--- a/lisp/pcomplete.el	Mon Mar 05 19:57:03 2007 +0000
+++ b/lisp/pcomplete.el	Mon Mar 05 19:57:10 2007 +0000
@@ -974,18 +974,20 @@
 	    (while (with-current-buffer (get-buffer "*Completions*")
 		     (setq event (pcomplete-read-event)))
 	      (cond
-	       ((event-matches-key-specifier-p event ? )
+	       ((event-matches-key-specifier-p event ?\s)
 		(set-window-configuration pcomplete-last-window-config)
 		(setq pcomplete-last-window-config nil)
 		(throw 'done nil))
 	       ((or (event-matches-key-specifier-p event 'tab)
                     ;; Needed on a terminal
                     (event-matches-key-specifier-p event 9))
-		(save-selected-window
-		  (select-window (get-buffer-window "*Completions*" t))
-		  (if (pos-visible-in-window-p (point-max))
-		      (goto-char (point-min))
-		    (scroll-up)))
+                (let ((win (or (get-buffer-window "*Completions*" 0)
+                               (display-buffer "*Completions*"
+                                               'not-this-window))))
+                  (with-selected-window win
+                    (if (pos-visible-in-window-p (point-max))
+                        (goto-char (point-min))
+                      (scroll-up))))
 		(message ""))
 	       (t
 		(setq unread-command-events (list event))