summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/lisp.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2005-12-10 11:40:04 +0000
committerEli Zaretskii <eliz@gnu.org>2005-12-10 11:40:04 +0000
commit6d93e4aa38aa1993c8be0e24cf374d40583455bd (patch)
tree1f397fc29a77adfa402810dda0205e686d92ecbf /lisp/emacs-lisp/lisp.el
parenteba9bb5f1a21b52c9ce87f641dfb4521dfaa4b55 (diff)
downloademacs-6d93e4aa38aa1993c8be0e24cf374d40583455bd.tar.gz
emacs-6d93e4aa38aa1993c8be0e24cf374d40583455bd.tar.bz2
emacs-6d93e4aa38aa1993c8be0e24cf374d40583455bd.zip
(lisp-complete-symbol): Regenerate the completion list, even after a partial
completion has been inserted in the current buffer. If there are more than 1 completion, redisplay the *Completions* buffer; if the completion is unique, delete the *Completions* window.
Diffstat (limited to 'lisp/emacs-lisp/lisp.el')
-rw-r--r--lisp/emacs-lisp/lisp.el13
1 files changed, 8 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index 4b799ebfedf..7aeb33a648e 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -569,10 +569,11 @@ considered."
((null completion)
(message "Can't find completion for \"%s\"" pattern)
(ding))
- ((not (string= pattern completion))
- (delete-region beg end)
- (insert completion))
(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<))
@@ -585,8 +586,10 @@ considered."
new))
(setq list (cdr list)))
(setq list (nreverse new))))
- (with-output-to-temp-buffer "*Completions*"
- (display-completion-list list pattern)))
+ (if (> (length list) 1)
+ (with-output-to-temp-buffer "*Completions*"
+ (display-completion-list list pattern))
+ (delete-windows-on "*Completions*")))
(message "Making completion list...%s" "done")))))))
;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e