anchor.diff:          (concatenate 'string
                        *isearch-string*
                        (string c)))
  -  (isearch-update-display)
     (with-point ((start-point (current-point)))
       (unless (funcall *isearch-search-function* (current-point) *isearch-string*)
         (move-point (current-point) start-point)))
  +  (isearch-update-display)
     t)
   
   (define-command isearch-self-insert () ()
  
positive.code: 
  (defun isearch-update-display ()
    (isearch-update-minibuffer)
    (isearch-update-buffer))
  
  (defun isearch-update-minibuffer ()
  
negative.code: 
  (defun isearch-update-buffer (&optional (point (current-point))
                                (search-string *isearch-string*))
    (let ((buffer (point-buffer point)))
      (isearch-reset-overlays buffer)
      (unless (equal search-string "")
        (dolist (window (get-buffer-windows buffer))
          (with-point ((curr (window-view-point window))
                       (limit (window-view-point window)))
            (unless (line-offset limit (window-height window))
  