anchor.diff:     (%font :initarg :font :reader font)
      (%foreground-colour :initarg :foreground-colour :accessor foreground-colour)
      (%background-colour :initarg :background-colour :accessor background-colour)
  +   (%killed-region :initarg :killed-region :accessor killed-region)
      ;; Redisplay state.
      (%current-screen :initarg :screen :accessor editor-current-screen)
  -   (%line-cache :initarg :display-line-cache :accessor display-line-cache)
  -   )
  +   (%line-cache :initarg :display-line-cache :accessor display-line-cache))
     (:default-initargs :pending-event nil
                        :pending-redisplay t
                        :foreground-colour #xFFDCDCCC
                        :background-colour #xFF3E3E3E
  +                     :killed-region nil
                        :screen nil
                        :display-line-cache '()))
   
  
positive.code:           ;; Generate WINDOW-ROWS display lines, starting at TOP-LINE.
            ;; TODO: Don't start from the beginning of the top-line, use the charpos instead.
            (setf (mark-charpos top-line) 0)
            ;(format t "Top line ~S ~S~%" top-line (mark-line top-line))
            (do ((line (mark-line top-line) (next-line line)))
                ;; Stop when there are no more lines or the screen has been filled up.
                ((null line))
  
negative.code:           (when (and (or (buffer-mark-active buffer)
                           (buffer-property buffer 'pane-mark-was-active))
                       (not (mark-equal-p mark previous-mark-position)))
              (flush-display-lines-in-region mark previous-mark-position))
            ;; Finally, flush any stale lines.
            (flush-stale-lines)
  