anchor.diff:  ;;;
   ;;; Drei pane redisplay.
   
  -(defun nb-lines-in-pane (pane)
  -  (let* ((medium (sheet-medium pane))
  -	 (style (medium-text-style medium))
  -	 (height (text-style-height style medium)))
  -    (multiple-value-bind (x y w h) (bounding-rectangle* pane)
  -      (declare (ignore x y w))
  -      (max 1 (floor h (+ height (stream-vertical-spacing pane)))))))
  -
  -(defun adjust-pane-bot (drei-pane)
  -  "Make the region on display fit the size of the pane as closely
  -as possible by adjusting bot leaving top intact."
  -  (let* ((nb-lines-in-pane (nb-lines-in-pane drei-pane))
  -         (view (view drei-pane)))
  -    (with-accessors ((top top) (bot bot)) view
  -      (setf (offset bot) (offset top))
  -      (end-of-line bot)
  -      (loop until (end-of-buffer-p bot)
  -         repeat (1- nb-lines-in-pane)
  -         do (forward-object bot)
  -         (end-of-line bot)))))
  -
   (defun reposition-pane (drei-pane)
     "Try to put point close to the middle of the pane by moving top
   half a pane-size up."
  -  (let ((nb-lines-in-pane (nb-lines-in-pane drei-pane))
  -        (view (view drei-pane)))
  +  (let* ((view (view drei-pane))
  +         (nb-lines-in-pane (number-of-lines-in-region (top view) (bot view))))
       (with-accessors ((top top) (point point)) view
         (setf (offset top) (offset point))
         (beginning-of-line top)
  -      #+nil(loop do (beginning-of-line top)
  +      (loop do (beginning-of-line top)
            repeat (floor nb-lines-in-pane 2)
            until (beginning-of-buffer-p top)
            do (decf (offset top))
  
positive.code: (defun page-up (view)
    (with-accessors ((top top) (bot bot)) view
      (when (> (offset top) 0)
        (let ((nb-lines-in-region (number-of-lines-in-region top bot)))
          (setf (offset bot) (offset top))
          (end-of-line bot)
          (loop repeat nb-lines-in-region
             while (> (offset top) 0)
             do (decf (offset top))
             (beginning-of-line top))
          (setf (offset (point view)) (offset bot))
          (beginning-of-line (point view))
          (invalidate-all-strokes view)))))
  
  (defgeneric fix-pane-viewport (pane view)
    (:documentation "Fix the size and scrolling of `pane', which
  
negative.code: reposition the pane if point is outside the visible area."
    (with-accessors ((buffer buffer) (top top) (bot bot)
                     (point point)) (view drei-pane)
      (beginning-of-line top)
      (when (or (mark< point top)
                (mark> point bot))
        (reposition-pane drei-pane))))
  
  (defun page-down (view)
    (with-accessors ((top top) (bot bot)) view
  