anchor.diff:          (when one-p
             (split-window))
           (let ((*current-window*
  -               (or (find-if #'(lambda (window)
  -                                (eq buffer (window-buffer window)))
  -                            *window-list*)
  +               (or (window-tree-find
  +                    #'(lambda (window)
  +                        (eq buffer (window-buffer window)))
  +                    *window-tree*)
                      (get-next-window *current-window*))))
             (set-buffer buffer)
             (values *current-window* one-p)))))
   
  -(defun popup (buffer output-function &key (goto-bob-p t) (erase-p t))
  +(defun popup (buffer output-function &key (goto-bob-p t) (erase-p t)) ;***
     (multiple-value-bind (*current-window* newwin-p)
         (pop-to-buffer buffer)
       (when erase-p
  
positive.code:     (other-window))
    (multiple-value-bind (node getter setter another-getter another-setter)
        (window-tree-parent *window-tree* window)
      (adjust-size-windows-after-delete-window
       window
       (funcall another-getter)
       (eq (window-node-split-type node) :hsplit))
      (multiple-value-bind (node2 getter2 setter2)
          (window-tree-parent *window-tree* node)
        (if (null node2)
            (setq *window-tree* (funcall another-getter))
            (funcall setter2 (funcall another-getter)))))
  
negative.code: (define-command delete-current-window () ()
    (delete-window *current-window*))
  
  (defun pop-to-buffer (buffer) ;***
    (if (eq buffer (window-buffer))
        (values *current-window*
                (one-window-p))
  