From ba36181bdff1ce1bbf3029024a9a6c795c51e40b Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Sat, 1 Jun 2002 00:00:29 +0000 Subject: [PATCH] (choose-completion-string-functions): New special hook. (choose-completion-string1): Renamed from choose-completion-string. (choose-completion-string): Run choose-completion-string-functions until success, and only call choose-completion-string1 if it fails. --- lisp/simple.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lisp/simple.el b/lisp/simple.el index 305dc3e9817..5115fbef72f 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -3777,6 +3777,13 @@ With prefix argument N, move N items (negative N means move backward)." (forward-char 1)) (delete-char len))) +(defvar choose-completion-string-functions nil + "List of functions which may override the standard `choose-completion-string'. +Each function in the list is called in turn with arguments CHOICE BUFFER BASE-SIZE +like choose-completion-string. If a function in the list returns non-nil, that +function is supposed to have inserted the completion in the minibuffer. +If all functions in the list return nil, use the default completion selection.") + ;; Switch to BUFFER and insert the completion choice CHOICE. ;; BASE-SIZE, if non-nil, says how many characters of BUFFER's text ;; to keep. If it is nil, use choose-completion-delete-max-match instead. @@ -3785,6 +3792,11 @@ With prefix argument N, move N items (negative N means move backward)." ;; unless it is reading a file name and CHOICE is a directory, ;; or completion-no-auto-exit is non-nil. (defun choose-completion-string (choice &optional buffer base-size) + (unless (run-hook-with-args-until-success + 'choose-completion-string-functions choice buffer base-size) + (choose-completion-string1 choice buffer base-size))) + +(defun choose-completion-string1 (choice &optional buffer base-size) (let ((buffer (or buffer completion-reference-buffer)) (mini-p (string-match "\\` \\*Minibuf-[0-9]+\\*\\'" (buffer-name buffer)))) ;; If BUFFER is a minibuffer, barf unless it's the currently -- 2.39.5