Function: isearch--highlight-regexp-or-lines

isearch--highlight-regexp-or-lines is a byte-compiled function defined in isearch.el.gz.

Signature

(isearch--highlight-regexp-or-lines HI-LOCK-FUNC)

Documentation

Run HI-LOCK-FUNC to exit isearch, leaving the matches highlighted.

This is the internal function used by isearch-highlight-regexp and isearch-highlight-lines-matching-regexp to invoke HI-LOCK-FUNC (either highlight-regexp or highlight-lines-matching-regexp, respectively).

Source Code

;; Defined in /usr/src/emacs/lisp/isearch.el.gz
(defun isearch--highlight-regexp-or-lines (hi-lock-func)
  "Run HI-LOCK-FUNC to exit isearch, leaving the matches highlighted.
This is the internal function used by `isearch-highlight-regexp'
and `isearch-highlight-lines-matching-regexp' to invoke
HI-LOCK-FUNC (either `highlight-regexp' or `highlight-lines-matching-regexp',
respectively)."
  (let (
	;; Set `isearch-recursive-edit' to nil to prevent calling
	;; `exit-recursive-edit' in `isearch-done' that terminates
	;; the execution of this command when it is non-nil.
	;; We call `exit-recursive-edit' explicitly at the end below.
	(isearch-recursive-edit nil))
    (isearch-done nil t)
    (isearch-clean-overlays))
  (require 'hi-lock nil t)
  (let ((regexp (cond ((functionp isearch-regexp-function)
                       (funcall isearch-regexp-function isearch-string))
		      (isearch-regexp-function (word-search-regexp isearch-string))
		      (isearch-regexp isearch-string)
		      (t (regexp-quote isearch-string)))))
    (let ((case-fold-search isearch-case-fold-search)
          ;; Set `search-upper-case' to nil to not call
          ;; `isearch-no-upper-case-p' in `hi-lock'.
          (search-upper-case nil)
          (search-spaces-regexp
           (if (if isearch-regexp
                   isearch-regexp-lax-whitespace
                 isearch-lax-whitespace)
               search-whitespace-regexp)))
      (funcall hi-lock-func regexp (hi-lock-read-face-name) isearch-string)))
  (and isearch-recursive-edit (exit-recursive-edit)))