anchor.diff:        (cadr result)
         (car *window-list*))))
   
  +(defun upper-window (window)
  +  (unless (one-window-p)
  +    (do ((prev *window-list* (cdr prev)))
  +        ((null (cdr prev)))
  +      (when (eq (cadr prev) window)
  +        (return (car prev))))))
  +
  +(defun lower-window (window)
  +  (cadr (member window *window-list*)))
  +
   (define-key *global-keymap* "C-xo" 'other-window)
   (defcommand other-window (&optional (n 1)) ("p")
     (dotimes (_ n t)
       (setq *current-window*
         (get-next-window *current-window*))))
   
  -(defun window-move (window y x)
  +(defun window-set-pos (window y x)
     (cl-ncurses:mvwin (window-win window) y x)
     (setf (window-y window) y)
     (setf (window-x window) x))
   
  -(defun window-resize (window nlines ncols)
  +(defun window-set-size (window nlines ncols)
     (cl-ncurses:wresize (window-win window) nlines ncols)
     (setf (window-nlines window) nlines)
     (setf (window-ncols window) ncols))
  +
  +(defun window-move (window dy dx)
  +  (window-set-pos window
  +    (+ (window-y window) dy)
  +    (+ (window-x window) dx)))
  +
  +(defun window-resize (window dl dc)
  +  (window-set-size window
  +    (+ (window-nlines window) dl)
  +    (+ (window-ncols window) dc)))
   
   (define-key *global-keymap* "C-x1" 'delete-other-windows)
   (defcommand delete-other-windows () ()
  
positive.code:          (get-next-window *current-window*)))
      (set-buffer buffer)
      *current-window*))
  
negative.code: 
  (defun window-adjust-all ()
    (dolist (win *window-list*)
      (window-set-size win
        (window-nlines win)
        cl-ncurses:*cols*))
    (dolist (win *window-list*)
      (when (<= cl-ncurses:*lines* (+ 2 (window-y win)))
        (delete-window-1 win)))
    (let ((win (car (last *window-list*))))
      (window-set-size win
        (+ (window-nlines win)
          (- cl-ncurses:*lines* *current-lines*))
        (window-ncols win)))
  