anchor.diff:        (isearch-add-char c)
         (progn
          (mapc 'ungetch keys)
  -       (setq *current-keymap*
  -         *isearch-tmp-keymap*)))))
  +       (isearch-end)))))
   
   (defun search-step (str first-search search step goto-matched-pos endp)
     (let ((point (point))
  
positive.code: 
  (defvar *isearch-keymap* (make-keymap 'isearch-undef-hook))
  (defvar *isearch-string*)
  (defvar *isearch-start-point*)
  (defvar *isearch-tmp-keymap*)
  (defvar *isearch-search-function*)
  
negative.code: 
  (define-key *isearch-keymap* "C-j" 'isearch-end)
  (defcommand isearch-end () ()
    (setq *isearch-prev-string* *isearch-string*)
    (setq *current-keymap* *isearch-tmp-keymap*))
  
  (define-key *isearch-keymap* "C-s" 'isearch-next)
  (defcommand isearch-next () ()
    (when (string= "" *isearch-string*)
      (setq *isearch-string* *isearch-prev-string*))
    (search-forward-aux *isearch-string*)
    (isearch-update-minibuf))
  
  (define-key *isearch-keymap* "C-r" 'isearch-prev)
  (defcommand isearch-prev () ()
    (when (string= "" *isearch-string*)
      (setq *isearch-string* *isearch-prev-string*))
    (search-backward-aux *isearch-string*)
    (isearch-update-minibuf))
  
  