anchor.diff:  
   (define-key *listener-mode-keymap* (kbd "C-c C-u") 'listener-clear-input)
   (define-command listener-clear-input () ()
  -  (delete-between-points (listener-start-point)
  +  (delete-between-points (listener-start-point (current-buffer))
   			 (buffers-end (current-buffer))))
  
positive.code: (define-command listener-prev-input () ()
    (multiple-value-bind (str win)
        (lem.history:prev-history (%listener-history))
      (let ((start (listener-start-point))
            (end (buffers-end (current-buffer))))
        (save-excursion
          (delete-between-points start end)
          (when win (insert-string start str))
          (move-point (%listener-point) start)))))
  
  (define-key *listener-mode-keymap* (kbd "M-n") 'listener-next-input)
  (define-command listener-next-input () ()
    (multiple-value-bind (str win)
        (lem.history:next-history (%listener-history))
      (let ((start (listener-start-point))
            (end (buffers-end (current-buffer))))
        (save-excursion
          (delete-between-points start end)
          (when win (insert-string start str))
          (move-point (%listener-point) start)))))
  
  (define-key *listener-mode-keymap* (kbd "M-r") 'listener-reset-interactive)
  (define-command listener-reset-interactive (arg) ("P")
  
negative.code:     (setf (%listener-history)
            (lem.history:make-history))))
  
  (defun listener-start-point (buffer)
    (%listener-point buffer))
  
  (defun listener-start (buffer-name mode)
    (let ((buffer (get-buffer-create buffer-name)))
  