anchor.diff:    (setf (completion-cursor minibuffer) 0)
     (setf (setup-function minibuffer) setup-function)
     (setf (cleanup-function minibuffer) cleanup-function)
  +  (setf (invisible-input-p minibuffer) invisible-input-p)
     (setf (empty-complete-immediate minibuffer) empty-complete-immediate)
     (setf (callback-buffer minibuffer) (active-buffer *interface*))
     (if setup-function
  
positive.code:         ;; if there's no completion function
          (return-immediate (first (modes minibuffer)) minibuffer))
      (when cleanup-function
        (funcall cleanup-function))))
  
  (define-command return-immediate (minibuffer-mode &optional (minibuffer (minibuffer *interface*)))
    "Return with minibuffer input, ignoring the selection."
  
negative.code:       ;; Don't add input-buffer to completions that don't accept arbitrary
        ;; inputs (i.e. empty-complete-immediate is nil).
        (push input-buffer completions))
      (let ((input-text (if (invisible-input-p minibuffer)
                             (generate-input-html-invisible input-buffer input-buffer-cursor)
                             (generate-input-html input-buffer input-buffer-cursor)))
            (completion-html (generate-completion-html completions completion-cursor)))
        (rpc-minibuffer-evaluate-javascript
         *interface* (rpc-window-active *interface*)
  