anchor.diff:  (define-command isearch-next () ()
     (when (string= "" *isearch-string*)
       (setq *isearch-string* *isearch-prev-string*))
  -  (search-forward *isearch-string*)
  +  (funcall *isearch-search-forward-function* *isearch-string*)
     (isearch-update-display))
   
   (define-key *isearch-keymap* (kbd "C-r") 'isearch-prev)
   (define-command isearch-prev () ()
     (when (string= "" *isearch-string*)
       (setq *isearch-string* *isearch-prev-string*))
  -  (search-backward *isearch-string*)
  +  (funcall *isearch-search-backward-function* *isearch-string*)
     (isearch-update-display))
   
   (define-key *isearch-keymap* (kbd "C-y") 'isearch-yank)
  
positive.code:       (point-set point))
      result))
  
  (defun search-forward-step ()
    (next-line 1)
    (beginning-of-line))
  
  (defun search-forward-endp-function (limit)
    (if limit
        #'(lambda ()
  
negative.code:         (point-set start-point)
          (do ()
              ((null
                (funcall *isearch-search-forward-function*
                         search-string end-point)))
            (let ((point2 (point))
                  (point1 (save-excursion
                           (funcall *isearch-search-backward-function*
                                    search-string)
                           (point))))
              (push (make-overlay point1 point2
                                  :attr (if (and (point<= point1 save-point)
  