1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-24 07:20:37 +00:00

(choose-completion-string): Barf if completing into

a minibuffer but it's not now active.
This commit is contained in:
Richard M. Stallman 1994-05-05 05:27:59 +00:00
parent dc591caf15
commit cf52ad5812

View File

@ -2461,14 +2461,22 @@ it were the arg to `interactive' (which see) to interactively read the value."
(defun choose-completion-string (choice &optional buffer)
(let ((buffer (or buffer completion-reference-buffer)))
(set-buffer buffer)
(choose-completion-delete-max-match choice)
(insert choice)
;; Update point in the window that BUFFER is showing in.
(let ((window (get-buffer-window buffer t)))
(set-window-point window (point)))
(and (equal buffer (window-buffer (minibuffer-window)))
(minibuffer-complete-and-exit))))
;; If BUFFER is a minibuffer, barf unless it's the currently
;; active minibuffer.
(if (and (string-match "\\` \\*Minibuf-[0-9]+\\*\\'" (buffer-name buffer))
(or (not (minibuffer-window-active-p (minibuffer-window)))
(not (equal buffer (window-buffer (minibuffer-window))))))
(error "Minibuffer is not active for completion")
;; Insert the completion into the buffer where completion was requested.
(set-buffer buffer)
(choose-completion-delete-max-match choice)
(insert choice)
;; Update point in the window that BUFFER is showing in.
(let ((window (get-buffer-window buffer t)))
(set-window-point window (point)))
;; If completing for the minibuffer, exit it with this choice.
(and (equal buffer (window-buffer (minibuffer-window)))
(minibuffer-complete-and-exit)))))
(defun completion-list-mode ()
"Major mode for buffers showing lists of possible completions.