anchor.diff:                       *isearch-string*
                        (string c)))
     (isearch-update-display)
  -  (lem::with-point ((start-marker (current-point)))
  +  (lem::with-point ((start-point (current-point)))
       (unless (funcall *isearch-search-function* (current-point) *isearch-string*)
  -      (lem::move-point (current-point) start-marker)))
  +      (lem::move-point (current-point) start-point)))
     t)
   
   (define-command isearch-self-insert () ()
  
positive.code:   (mapc #'delete-overlay *isearch-highlight-overlays*)
    (setq *isearch-highlight-overlays* nil))
  
  (defun isearch-update-buffer (marker &optional (search-string *isearch-string*))
    (isearch-reset-buffer)
    (unless (equal search-string "")
      (window-see (current-window))
      (lem::with-point ((cur-marker (lem::window-view-point (current-window)))
                         (limit-marker (or (lem::line-offset
                                            (copy-point (lem::window-view-point (current-window))
                                                         :temporary)
                                            (window-height (current-window)))
                                           (lem::buffers-end (window-buffer (current-window))))))
        (loop :while (funcall *isearch-search-forward-function*
                              cur-marker
                              search-string
                              limit-marker)
              :do (let ((start-marker (lem::with-point ((temp-marker cur-marker :temporary))
                                        (funcall *isearch-search-backward-function*
                                                 temp-marker
                                                 search-string)
                                        temp-marker)))
                    (push (make-overlay start-marker
                                        (copy-point cur-marker :temporary)
                                        (if (and (point<= start-marker marker)
                                                 (point<= marker cur-marker))
                                            *isearch-highlight-active-attribute*
                                            *isearch-highlight-attribute*))
                          *isearch-highlight-overlays*))))))
  
negative.code: (define-command isearch-forward () ()
    (isearch-start
     "ISearch: "
     (lambda (point str)
       (search-forward (or (lem::character-offset point (- (length str)))
                           point)
                       str))
     #'search-forward
     #'search-backward
  