Function: isearch-search-and-update
isearch-search-and-update is a byte-compiled function defined in
isearch.el.gz.
Signature
(isearch-search-and-update)
Documentation
Do the search and update the display.
Source Code
;; Defined in /usr/src/emacs/lisp/isearch.el.gz
(defun isearch-search-and-update ()
"Do the search and update the display."
(when (or isearch-success
;; Unsuccessful regexp search may become successful by
;; addition of characters which make isearch-string valid
isearch-regexp
;; If the string was found but was completely invisible,
;; it might now be partly visible, so try again.
(prog1 isearch-hidden (setq isearch-hidden nil)))
;; In reverse search, adding stuff at
;; the end may cause zero or many more chars to be
;; matched, in the string following point.
;; Allow all those possibilities without moving point as
;; long as the match does not extend past search origin.
(if (and (not isearch-forward) (not isearch-adjusted)
(condition-case ()
(let ((case-fold-search isearch-case-fold-search))
(if (and (eq case-fold-search t) search-upper-case)
(setq case-fold-search
(isearch-no-upper-case-p isearch-string isearch-regexp)))
(looking-at (cond
((functionp isearch-regexp-function)
(funcall isearch-regexp-function isearch-string t))
(isearch-regexp-function (word-search-regexp isearch-string t))
(isearch-regexp isearch-string)
(t (regexp-quote isearch-string)))))
(error nil))
(or isearch-yank-flag
(<= (match-end 0)
(min isearch-opoint isearch-barrier))))
(progn
(setq isearch-success t
isearch-error nil
isearch-other-end (match-end 0))
(if (and (eq isearch-case-fold-search t) search-upper-case)
(setq isearch-case-fold-search
(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)
(if (and isearch-other-end (not isearch-adjusted))
(goto-char (if isearch-forward isearch-other-end
(min isearch-opoint
isearch-barrier
(1+ isearch-other-end)))))
(isearch-search)
))
(isearch-push-state)
(if isearch-op-fun (funcall isearch-op-fun))
(isearch-update))