]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/minibuffer.el (minibuffer-force-complete-and-exit):
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 1 Jun 2014 02:24:23 +0000 (22:24 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 1 Jun 2014 02:24:23 +0000 (22:24 -0400)
Obey minibuffer-default.

Fixes: debbugs:17545
lisp/ChangeLog
lisp/minibuffer.el

index f1e3af8123d530b9434db884ffd5725afbb14c5f..08990e03e7aec0e81210a74c17f18266179c7185 100644 (file)
@@ -1,5 +1,8 @@
 2014-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * 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.
 
 2014-05-21  Dmitry Gutov  <dgutov@yandex.ru>
 
-       * 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.
index e63c85c98d0783269c733078e2b7cc2976821a47..2c0541ac0966a8299fcce0b13e24e1044c24aec7 100644 (file)
@@ -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.