anchor.diff:    (- (window-current-linum window)
        (window-vtop-linum window)))
   
  -(defun window-cursor-y-if-wrapping (window)
  +(defun window-cursor-y (window)
     (+ (window-cursor-y-not-wrapping window)
        (window-wrapping-offset window)))
   
  
positive.code:                  (window-vtop-linum window))
                (< 0 (window-vtop-charpos window)))
           -1)
          ((let ((n (- (window-cursor-y-if-wrapping window)
                       (- (window-height window) 2))))
             (when (< 0 n) n)))
          (t
  
negative.code:   (if (minusp n)
        (scroll-up (- n))
        (dotimes (_ n t)
          (when (= (window-cursor-y (current-window)) 0)
            (unless (forward-line n)
              (return nil)))
          (let ((prev-linum (window-vtop-linum))
  