summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/minibuffer.el7
2 files changed, 11 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e87c543b3a3..40d8cda4d2f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-29 Miles Bader <miles@gnu.org>
+
+ * minibuffer.el (minibuffer-confirm-exit-commands): New variable.
+ (minibuffer-complete-and-exit): Use it.
+
2008-11-29 Chong Yidong <cyd@stupidchicken.com>
* term/x-win.el (x-gtk-stock-cache): New hash table.
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 84d8e658a72..aab35a2814b 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -542,6 +542,11 @@ Repeated uses step through the possible completions."
;; through the previous possible completions.
(setq completion-all-sorted-completions (cdr all)))))
+(defvar minibuffer-confirm-exit-commands
+ '(minibuffer-complete minibuffer-complete-word)
+ "A list of commands which cause an immediately following
+`minibuffer-complete-and-exit' to ask for extra confirmation.")
+
(defun minibuffer-complete-and-exit ()
"Exit if the minibuffer contains a valid completion.
Otherwise, try to complete the minibuffer contents. If
@@ -595,7 +600,7 @@ If `minibuffer-completion-confirm' is `confirm-after-completion',
((eq minibuffer-completion-confirm 'confirm-after-completion)
;; Similar to the above, but only if trying to exit immediately
;; after typing TAB (this catches most minibuffer typos).
- (if (eq last-command 'minibuffer-complete)
+ (if (memq last-command minibuffer-confirm-exit-commands)
(progn (minibuffer-message "Confirm")
nil)
(exit-minibuffer)))