Aaron Jensen <aaronjensen@gmail.com> writes:
Right, and I agree. I'm trying to find a way to explain the difference that Aaron sees with and
without his config. Otherwise I have no idea how to proceed with this.>
It's global-display-line-numbers-mode.
>
Repro from emacs -Q:
>
(defun foo ()
(Interactive)
(global-display-line-numbers-mode)
(term "/usr/bin/yes")
(switch-to-buffer "*scratch*"))>
Aaron
Thanks! I think I see now what's going on.
redisplay_internal has this (line numbers may differ):
xdisp.c:
17368 && (NILP (Vdisplay_line_numbers) 17369 || EQ (Vdisplay_line_numbers, Qvisual))This means that certain redisplay optimizations that make redisplay particularly "cheap" are not tried, depending on line number display.
Instead the more expensive redisplay methods are used that consider whole windows or parts of them and so on. Or, in other words, line number display can make redisplay less of a nop.
So, with line numbers, hidden buffer with process -> wait_reading_process_output -> redisplay_internal -> update_window (or similar) -> ... -> row_equal_p -> the equal macros