From: Stefan Monnier Date: Sun, 1 Jun 2014 02:24:23 +0000 (-0400) Subject: * lisp/minibuffer.el (minibuffer-force-complete-and-exit): X-Git-Tag: emacs-24.3.92~134 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=08c0f6266af07be30de58623d26f47a5a69bcf10;p=emacs.git * lisp/minibuffer.el (minibuffer-force-complete-and-exit): Obey minibuffer-default. Fixes: debbugs:17545 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f1e3af8123d..08990e03e7a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2014-06-01 Stefan Monnier + * 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 - * 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 e63c85c98d0..2c0541ac096 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.