From b0867c7b7cb445dc2a8b84acc225d36b8f3ed073 Mon Sep 17 00:00:00 2001 From: Augusto Stoffel Date: Fri, 14 May 2021 11:58:35 +0200 Subject: [PATCH] Don't give special treatment to the isearch-message function * lisp/isearch.el (isearch-message): defer to isearch-message-function if non-nil. (isearch-mode-end-hook-quit, isearch-update, with-isearch-suspended, isearch-del-char, isearch-search-and-update, isearch-ring-adjust, isearch-lazy-highlight-new-loop, isearch-lazy-highlight-buffer-update): Just call `isearch-message', no need to check isearch-message-function anymore. --- lisp/isearch.el | 55 +++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index 536c76ea5d..5db9ba9e4d 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -211,7 +211,8 @@ isearch-mode-end-hook-quit (defvar isearch-message-function nil "Function to call to display the search prompt. -If nil, use function `isearch-message'.") +If non-nil, the function `isearch-message' calls this function, +with the same arguments, to do its job.") (defvar isearch-wrap-function nil "Function to call to wrap the search when search is failed. @@ -1343,7 +1344,7 @@ isearch-update (null executing-kbd-macro)) (progn (if (not (input-pending-p)) - (funcall (or isearch-message-function #'isearch-message))) + (isearch-message)) (if (and isearch-slow-terminal-mode (not (or isearch-small-window (pos-visible-in-window-group-p)))) @@ -1731,7 +1732,7 @@ with-isearch-suspended (isearch-update-from-string-properties isearch-string) ;; Restore the minibuffer message before moving point. - (funcall (or isearch-message-function #'isearch-message) nil t) + (isearch-message nil t) ;; Set point at the start (end) of old match if forward (backward), ;; so after exiting minibuffer isearch resumes at the start (end) @@ -2504,7 +2505,7 @@ isearch-del-char isearch-message (mapconcat 'isearch-text-char-description isearch-string ""))) ;; Do the following before moving point. - (funcall (or isearch-message-function #'isearch-message) nil t) + (isearch-message nil t) ;; Use the isearch-other-end as new starting point to be able ;; to find the remaining part of the search string again. ;; This is like what `isearch-search-and-update' does, @@ -2765,7 +2766,7 @@ isearch-search-and-update (isearch-no-upper-case-p isearch-string isearch-regexp)))) ;; Not regexp, not reverse, or no match at point. ;; Do the following before moving point. - (funcall (or isearch-message-function #'isearch-message) nil t) + (isearch-message nil t) (if (and isearch-other-end (not isearch-adjusted)) (goto-char (if isearch-forward isearch-other-end (min isearch-opoint @@ -3187,7 +3188,7 @@ isearch-ring-adjust (isearch-ring-adjust1 advance) (if search-ring-update (progn - (funcall (or isearch-message-function #'isearch-message) nil t) + (isearch-message nil t) (isearch-search) (isearch-push-state) (isearch-update)) @@ -3267,22 +3268,24 @@ isearch-message ;; circumstances are when follow-mode is active, the search string ;; spans two (or several) windows, and the message about to be ;; displayed will cause the echo area to expand. - (let ((cursor-in-echo-area ellipsis) - (m isearch-message) - (fail-pos (isearch-fail-pos t))) - ;; Highlight failed part - (when fail-pos - (setq m (copy-sequence m)) - (add-text-properties fail-pos (length m) '(face isearch-fail) m) - ;; Highlight failed trailing whitespace - (when (string-match " +$" m) - (add-text-properties (match-beginning 0) (match-end 0) - '(face trailing-whitespace) m))) - (setq m (concat - (isearch-message-prefix ellipsis isearch-nonincremental) - m - (isearch-message-suffix c-q-hack))) - (if c-q-hack m (let ((message-log-max nil)) (message "%s" m))))) + (if isearch-message-function + (funcall isearch-message-function c-q-hack ellipsis) + (let ((cursor-in-echo-area ellipsis) + (m isearch-message) + (fail-pos (isearch-fail-pos t))) + ;; Highlight failed part + (when fail-pos + (setq m (copy-sequence m)) + (add-text-properties fail-pos (length m) '(face isearch-fail) m) + ;; Highlight failed trailing whitespace + (when (string-match " +$" m) + (add-text-properties (match-beginning 0) (match-end 0) + '(face trailing-whitespace) m))) + (setq m (concat + (isearch-message-prefix ellipsis isearch-nonincremental) + m + (isearch-message-suffix c-q-hack))) + (if c-q-hack m (let ((message-log-max nil)) (message "%s" m)))))) (defun isearch--describe-regexp-mode (regexp-function &optional space-before) "Make a string for describing REGEXP-FUNCTION. @@ -3940,7 +3943,7 @@ isearch-lazy-highlight-new-loop isearch-lazy-highlight-window-end)))))) ;; something important did indeed change (lazy-highlight-cleanup t (not (equal isearch-string ""))) ;stop old timer - (when (and isearch-lazy-count isearch-mode (null isearch-message-function)) + (when isearch-lazy-count (when (or (equal isearch-string "") ;; Check if this place was reached by a condition above ;; other than changed window boundaries (that shouldn't @@ -4010,9 +4013,7 @@ isearch-lazy-highlight-new-loop lazy-highlight-initial-delay) nil 'isearch-lazy-highlight-start)))) - ;; Update the current match number only in isearch-mode and - ;; unless isearch-mode is used specially with isearch-message-function - (when (and isearch-lazy-count isearch-mode (null isearch-message-function)) + (when isearch-lazy-count ;; Update isearch-lazy-count-current only when it was already set ;; at the end of isearch-lazy-highlight-buffer-update (when isearch-lazy-count-current @@ -4220,7 +4221,7 @@ isearch-lazy-highlight-buffer-update (setq looping nil nomore t)))) (if nomore - (when (and isearch-lazy-count isearch-mode (null isearch-message-function)) + (when isearch-lazy-count (unless isearch-lazy-count-total (setq isearch-lazy-count-total 0)) (setq isearch-lazy-count-current -- 2.31.1