diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 91bbb60013..543e451c5d 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -400,7 +400,7 @@ icomplete-mode (add-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup))) (defun icomplete--completion-table () - (if (window-minibuffer-p) minibuffer-completion-table + (if (window-minibuffer-p) (and completing-minibuffer minibuffer-completion-table) (or (nth 2 completion-in-region--data) (message "In %S (w=%S): %S" (current-buffer) (selected-window) (window-minibuffer-p))))) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index a0247d1fba..3ceb67733d 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -3826,6 +3826,8 @@ completing-read-function "The function called by `completing-read' to do its work. It should accept the same arguments as `completing-read'.") +(defvar completing-minibuffer nil) + (defun completing-read-default (prompt collection &optional predicate require-match initial-input hist def inherit-input-method) @@ -3839,6 +3841,9 @@ completing-read-default ;; `read-from-minibuffer' uses 1-based index. (1+ (cdr initial-input))))) + (minibuffer-with-setup-hook + (lambda () + (setq-local completing-minibuffer t)) (let* ((minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) ;; FIXME: Remove/rename this var, see the next one. @@ -3862,7 +3867,7 @@ completing-read-default nil hist def inherit-input-method))) (when (and (equal result "") def) (setq result (if (consp def) (car def) def))) - result)) + result))) ;; Miscellaneous