anchor.diff:                          0)))
   
   (defun minibuf-read-line-loop (prompt comp-f existing-p)
  -  (let ((*minibuf-read-line-loop* t)
  -        (*minibuf-read-line-prompt* prompt)
  +  (let ((*minibuf-read-line-prompt* prompt)
           (*minibuf-read-line-existing-p* existing-p)
           (*minibuf-read-line-comp-f* comp-f))
  -    (do ((*curr-flags* (make-flags) (make-flags))
  -         (*last-flags* (make-flags) *curr-flags*))
  -        ((not *minibuf-read-line-loop*)
  -         (let ((str (minibuf-get-line)))
  -           (add-history *minibuf-read-line-history* str)
  -           str))
  -      (redraw-display)
  -      (let* ((key (read-key-sequence))
  -             (cmd (find-keybind key)))
  -        (handler-case (cmd-call cmd nil)
  -          (editor-abort (c)
  -            (when (/= (editor-abort-depth c)
  -                      *minibuf-read-line-depth*)
  -              (error c)))
  -          (editor-error (c) (message (editor-error-message c))))))))
  +    (catch 'minibuf-read-line-end
  +      (do ((*curr-flags* (make-flags) (make-flags))
  +           (*last-flags* (make-flags) *curr-flags*))
  +          (nil)
  +        (redraw-display)
  +        (let* ((key (read-key-sequence))
  +               (cmd (find-keybind key)))
  +          (handler-case (cmd-call cmd nil)
  +            (editor-abort (c)
  +              (when (/= (editor-abort-depth c)
  +                        *minibuf-read-line-depth*)
  +                (error c)))
  +            (readonly ()
  +              (message "Read Only"))
  +            (editor-error (c)
  +              (message (editor-error-message c)))))))
  +      (let ((str (minibuf-get-line)))
  +        (add-history *minibuf-read-line-history* str)
  +        str)))
   
   (defun minibuf-read-line (prompt initial comp-f existing-p)
     (let ((*minibuf-read-line-tmp-window* (current-window)))
  
positive.code:     (when (or (string= str "")
                (null *minibuf-read-line-existing-p*)
                (funcall *minibuf-read-line-existing-p* str))
        (setq *minibuf-read-line-loop* nil)))
    t)
  
  (define-command minibuf-read-line-completion () ()
  
negative.code: (defvar *minibuf-read-line-tmp-window*)
  
  (defvar *minibuf-read-line-prompt*)
  (defvar *minibuf-read-line-comp-f*)
  (defvar *minibuf-read-line-existing-p*)
  
  