diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/lisp.el | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 5d593ecb9fd..f8a5b0b019e 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -569,11 +569,13 @@ considered." ((null completion) (message "Can't find completion for \"%s\"" pattern) (ding)) + ((not (string= pattern completion)) + (delete-region beg end) + (insert completion) + ;; Don't leave around a completions buffer that's outofdate. + (let ((win (get-buffer-window "*Completions*" 0))) + (if win (with-selected-window win (bury-buffer))))) (t - (unless (string= completion pattern) - (delete-region beg end) - (insert completion) - (setq pattern completion)) (message "Making completion list...") (let ((list (all-completions pattern obarray predicate))) (setq list (sort list 'string<)) @@ -589,8 +591,9 @@ considered." (if (> (length list) 1) (with-output-to-temp-buffer "*Completions*" (display-completion-list list pattern)) - (if (get-buffer "*Completions*") - (delete-windows-on "*Completions*")))) + ;; Don't leave around a completions buffer that's outofdate. + (let ((win (get-buffer-window "*Completions*" 0))) + (if win (with-selected-window win (bury-buffer)))))) (message "Making completion list...%s" "done"))))))) ;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e |