anchor.diff:    (if (minusp n)
         (scroll-up (- n))
         (dotimes (_ n t)
  -        (when (= (window-cursor-y (current-window)) 0)
  +        (when (= (window-cursor-y-if-wrapping (current-window)) 0)
             (unless (forward-line n)
               (return nil)))
           (let ((prev-linum (window-vtop-linum))
  
positive.code:                  (window-vtop-linum window))
                (< 0 (window-vtop-charpos window)))
           -1)
          ((let ((n (- (window-cursor-y window)
                       (- (window-height window) 2))))
             (when (< 0 n) n)))
          (t
  
negative.code:     (charms/ll:wattroff (window-win window)
                          attr)))
  
  (defun window-cursor-y (window)
    (- (window-current-linum window)
       (window-vtop-linum window)))
  
  (defun window-cursor-y-if-wrapping (window)
    (if (buffer-truncate-lines (window-buffer window))
        (+ (- (window-current-linum window)
              (window-vtop-linum window))
           (window-wrapping-offset window))
        (window-cursor-y window)))
  
  (defun window-print-line (window y str &key (start-x 0) (string-start 0) string-end)
    (check-type str fatstring)
  