anchor.diff:      (insert-string cur-point
   		   (princ-to-string
   		    (funcall
  -		     (get-bvar :listener-get-prompt-function)))
  +		     (get-bvar :listener-get-prompt-function :buffer buffer)))
   		   :attribute *prompt-attribute*
   		   :read-only t
   		   :field t)
       (buffer-end cur-point)
       (buffer-undo-boundary buffer)
  -    (listener-update-point)))
  +    (listener-update-point cur-point)))
   
   (define-key *listener-mode-keymap* (kbd "C-m") 'listener-return)
   (define-command listener-return () ()
     (with-point ((point (buffer-end (current-point)) :left-inserting))
       (if (not (funcall (get-bvar :listener-check-confirm-function) point))
           (insert-character point #\newline)
  -        (let ((start (listener-start-point)))
  +        (let ((start (listener-start-point (current-buffer))))
             (unless (point< start point)
               (listener-reset-prompt)
               (return-from listener-return t))
  
positive.code: 
  (define-key *listener-mode-keymap* (kbd "C-c C-u") 'listener-clear-input)
  (define-command listener-clear-input () ()
    (delete-between-points (listener-start-point)
  			 (buffers-end (current-buffer))))
  
negative.code: (define-command listener-prev-input () ()
    (multiple-value-bind (str win)
        (lem.history:prev-history (%listener-history))
      (let ((start (listener-start-point (current-buffer)))
            (end (buffers-end (current-buffer))))
        (save-excursion
          (delete-between-points start end)
          (when win (insert-string start str))
          (move-point (%listener-point (current-buffer)) 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 (current-buffer)))
            (end (buffers-end (current-buffer))))
        (save-excursion
          (delete-between-points start end)
          (when win (insert-string start str))
          (move-point (%listener-point (current-buffer)) start)))))
  
  (define-key *listener-mode-keymap* (kbd "M-r") 'listener-reset-interactive)
  (define-command listener-reset-interactive (arg) ("P")
  