Function: senator-search
senator-search is a byte-compiled function defined in senator.el.gz.
Signature
(senator-search SEARCHER TEXT &optional BOUND NOERROR COUNT)
Documentation
Use the SEARCHER function to search from point for TEXT in a tag name.
SEARCHER is typically the function search-forward, search-backward,
word-search-forward, word-search-backward, re-search-forward, or
re-search-backward. See one of the above function to see how the
TEXT, BOUND, NOERROR, and COUNT arguments are interpreted.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/senator.el.gz
(defun senator-search (searcher text &optional bound noerror count)
"Use the SEARCHER function to search from point for TEXT in a tag name.
SEARCHER is typically the function `search-forward', `search-backward',
`word-search-forward', `word-search-backward', `re-search-forward', or
`re-search-backward'. See one of the above function to see how the
TEXT, BOUND, NOERROR, and COUNT arguments are interpreted."
(let* ((origin (point))
(count (or count 1))
(step (cond ((> count 0) 1)
((< count 0) (setq count (- count)) -1)
(0)))
found next sstart send tag tstart tend)
(or (zerop step)
(while (and (not found)
(setq next (funcall searcher text bound t step)))
(setq sstart (match-beginning 0)
send (match-end 0))
(if (= sstart send)
(setq found t)
(and (setq tag (semantic-current-tag))
(run-hook-with-args-until-failure
'senator-search-tag-filter-functions tag)
(setq tend (senator-search-tag-name tag))
(setq tstart (match-beginning 0)
found (and (>= sstart tstart)
(<= send tend)
(zerop (setq count (1- count))))))
(goto-char next))))
(cond ((null found)
(setq next origin
send origin))
((= next sstart)
(setq next send
send sstart))
(t
(setq next sstart)))
(goto-char next)
;; Setup the returned value and the `match-data' or maybe fail!
(funcall searcher text send noerror step)))