anchor.diff:    (let ((end (current-point)))
       (if (not (funcall (get-bvar :listener-check-confirm-function)))
           (insert-newline)
  -        (let ((start (marker-point (%listener-marker))))
  +        (let ((start (listener-start-point)))
             (unless (point< start end)
               (listener-reset-prompt)
               (return-from listener-return t))
  
positive.code: (define-command listener-next-input () ()
    (multiple-value-bind (str win)
        (next-history (%listener-history))
      (let ((start (marker-point (%listener-marker)))
            (end (point-max)))
        (delete-region start end)
        (when win (insert-string str))
  
negative.code: (defpackage :lem.listener-mode
    (:use :cl :lem :lem.util)
    (:export :listener-mode
             :*listener-mode-keymap*
             :listener-start-point
             :listener-start
             :listener-reset-prompt
             :listener-return
  