aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier <[email protected]>2014-05-31 22:24:23 -0400
committerStefan Monnier <[email protected]>2014-05-31 22:24:23 -0400
commit08c0f6266af07be30de58623d26f47a5a69bcf10 (patch)
tree7556a1932b0acad9cd66a1ffff147877887cc65b
parentffa8a2db083165fc9f8c38ba9636e2c7801fcd2f (diff)
* lisp/minibuffer.el (minibuffer-force-complete-and-exit):
Obey minibuffer-default. Fixes: debbugs:17545
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/minibuffer.el18
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.