anchor.diff:          (point-set start-point)
           (do ()
               ((null
  -              (search-forward search-string
  -                              end-point)))
  +              (funcall *isearch-search-forward-function*
  +                       search-string end-point)))
             (let ((point2 (point))
                   (point1 (save-excursion
  -                         (prev-char (length search-string))
  +                         (funcall *isearch-search-backward-function*
  +                                  search-string)
                            (point))))
               (push (make-overlay point1 point2
                                   :attr (if (and (point<= point1 save-point)
  
positive.code:                                args)))))
        (search-step #'(lambda ()
                         (%search :end2 (window-cur-col)))
                     #'(lambda ()
                         (%search))
                     #'(lambda () (prev-line 1))
                     #'(lambda (i)
                         (and (prev-line (1- length))
                              (beginning-of-line)
                              (next-char i)))
                     (if limit
                         #'(lambda ()
                             (point< (point) limit))
                         #'bobp)))))
  
  (defvar *replace-before-string* nil)
  (defvar *replace-after-string* nil)
  
negative.code:       (point-set point))
      result))
  
  (defun search-forward-endp-function (limit)
    (if limit
        #'(lambda ()
  