diff options
author | Eli Zaretskii <eliz@gnu.org> | 2005-12-10 11:40:04 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2005-12-10 11:40:04 +0000 |
commit | 6d93e4aa38aa1993c8be0e24cf374d40583455bd (patch) | |
tree | 1f397fc29a77adfa402810dda0205e686d92ecbf /lisp/emacs-lisp/lisp.el | |
parent | eba9bb5f1a21b52c9ce87f641dfb4521dfaa4b55 (diff) | |
download | emacs-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.el | 13 |
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 |