anchor.diff:                   (multiple-value-setq (curx cury y2)
                                         (funcall disp-line-fun
                                                  screen start-charpos curx cury pos-x y str))
  -                 (let ((offset (- y2 y)))
  -                   (cond ((< 0 offset)
  -                          (setq redraw-flag t)
  -                          (dotimes (_ offset)
  -                            (push i (screen-wrap-lines screen))))
  -                         ((and (= offset 0) (find i wrap-lines))
  -                          (setq redraw-flag t))))
  -                 (setf y y2)
  -                 (incf y)))
  +                 (when (buffer-truncate-lines buffer)
  +                   (charms/ll:wclrtoeol (screen-%scrwin screen))
  +                   (let ((offset (- y2 y)))
  +                     (cond ((< 0 offset)
  +                            (setq redraw-flag t)
  +                            (dotimes (_ offset)
  +                              (push i (screen-wrap-lines screen))))
  +                           ((and (= offset 0) (find i wrap-lines))
  +                            (setq redraw-flag t))))
  +                   (setf y y2))))
                 (t
                  (fill (screen-old-lines screen) nil :start i)
                  (charms/ll:wmove (screen-%scrwin screen) y 0)
  
positive.code:          (if (buffer-truncate-lines buffer)
               #'disp-line-wrapping
               #'disp-line)))
      (let ((wrap-lines (screen-wrap-lines screen)))
        (setf (screen-wrap-lines screen) nil)
        (loop
          :with y := 0
          :for i :from 0
          :for str :across (screen-lines screen)
          :while (< y (screen-height screen))
          :do
          (cond ((and (not redraw-flag)
                      (aref (screen-old-lines screen) i)
                      str
                      (fat-equalp str (aref (screen-old-lines screen) i))
                      (/= (- pos-y start-linum) i))
                 (setf (aref (screen-old-lines screen) i) str)
                 (let ((n (count i wrap-lines)))
                   (when (and (< 0 n) (<= y cury))
                     (incf cury n))
                   (incf y (1+ n))
                   (dotimes (_ n)
                     (push i (screen-wrap-lines screen)))))
                (str
                 (when (zerop (fat-length str))
                   (charms/ll:wmove (screen-%scrwin screen) y 0)
  
negative.code:   (values curx cury y))
  
  (defun screen-display-lines (screen redraw-flag buffer start-charpos start-linum pos-x pos-y)
    ;; (when redraw-flag
    ;;   (charms/ll:werase (screen-%scrwin screen)))
    (disp-reset-lines screen buffer start-linum)
    (let ((curx 0)
          (cury (- pos-y start-linum))
  