* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print):
Don't use count-screen-lines, as it is unreliable when lines
are truncated and the region ends before a newline (the root
cause is in vertical-motion, but is very hard to fix there).
Instead, use vertical-motion directly, as the problems with
counting/not counting the newline that ends the region are not
relevant to what we need in this function, which is simply the
number of the current window line. (Bug#37941)
(setq saved-col (current-column))
(when (eq (window-buffer) (current-buffer))
(setq window-line
- (count-screen-lines (window-start) (point)))))
+ (save-excursion
+ (save-restriction
+ (widen)
+ (narrow-to-region (window-start) (point))
+ (goto-char (point-min))
+ (vertical-motion (buffer-size)))))))
;; Sort the entries, if necessary.
(when sorter
(setq entries (sort entries sorter)))