diff options
author | Stefan Monnier <[email protected]> | 2014-05-31 22:24:23 -0400 |
---|---|---|
committer | Stefan Monnier <[email protected]> | 2014-05-31 22:24:23 -0400 |
commit | 08c0f6266af07be30de58623d26f47a5a69bcf10 (patch) | |
tree | 7556a1932b0acad9cd66a1ffff147877887cc65b | |
parent | ffa8a2db083165fc9f8c38ba9636e2c7801fcd2f (diff) |
* lisp/minibuffer.el (minibuffer-force-complete-and-exit):
Obey minibuffer-default.
Fixes: debbugs:17545
-rw-r--r-- | lisp/ChangeLog | 11 | ||||
-rw-r--r-- | lisp/minibuffer.el | 18 |
2 files changed, 18 insertions, 11 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f1e3af8123..08990e03e7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2014-06-01 Stefan Monnier <[email protected]> + * minibuffer.el (minibuffer-force-complete-and-exit): + Obey minibuffer-default (bug#17545). + * progmodes/js.el (js-indent-line): Don't mix columns and chars (bug#17619). @@ -91,8 +94,8 @@ Todo file, make sure we're in the right mode and the buffer local variables are set. (todo-make-categories-list, todo-reset-nondiary-marker) - (todo-reset-done-string, todo-reset-comment-string): After - processing all Todo files, kill the buffers of those files that + (todo-reset-done-string, todo-reset-comment-string): + After processing all Todo files, kill the buffers of those files that weren't being visited before the processing. (todo-display-as-todo-file, todo-add-to-buffer-list) (todo-visit-files-commands): Comment out. @@ -155,8 +158,8 @@ 2014-05-21 Dmitry Gutov <[email protected]> - * emacs-lisp/package.el (package--download-one-archive): Use - `write-region' instead of `save-buffer' to avoid running various + * emacs-lisp/package.el (package--download-one-archive): + Use `write-region' instead of `save-buffer' to avoid running various hooks. (Bug#17155) (describe-package-1): Same. Insert newline at the end of the buffer if appropriate. diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index e63c85c98d..2c0541ac09 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1222,12 +1222,16 @@ scroll the window of possible completions." (defun minibuffer-force-complete-and-exit () "Complete the minibuffer with first of the matches and exit." (interactive) - (minibuffer-force-complete) - (completion--complete-and-exit - (minibuffer-prompt-end) (point-max) #'exit-minibuffer - ;; If the previous completion completed to an element which fails - ;; test-completion, then we shouldn't exit, but that should be rare. - (lambda () (minibuffer-message "Incomplete")))) + (if (and (eq (minibuffer-prompt-end) (point-max)) + minibuffer-default) + ;; Use the provided default if there's one (bug#17545). + (minibuffer-complete-and-exit) + (minibuffer-force-complete) + (completion--complete-and-exit + (minibuffer-prompt-end) (point-max) #'exit-minibuffer + ;; If the previous completion completed to an element which fails + ;; test-completion, then we shouldn't exit, but that should be rare. + (lambda () (minibuffer-message "Incomplete"))))) (defun minibuffer-force-complete (&optional start end) "Complete the minibuffer to an exact match. @@ -1946,7 +1950,7 @@ This respects the wrapper hook `completion-in-region-functions'." "Keymap activated during `completion-in-region'.") ;; It is difficult to know when to exit completion-in-region-mode (i.e. hide -;; the *Completions*). +;; the *Completions*). Here's how previous packages did it: ;; - lisp-mode: never. ;; - comint: only do it if you hit SPC at the right time. ;; - pcomplete: pop it down on SPC or after some time-delay. |