>> diff --git a/src/xdisp.c b/src/xdisp.c >> index 8a19b3bda9..9574d06bd5 100644 >> --- a/src/xdisp.c >> +++ b/src/xdisp.c >> @@ -3472,6 +3472,9 @@ init_iterator (struct it *it, struct window *w, >> &it->bidi_it); >> } >> >> + if (current_buffer->long_line_optimizations_p) >> + it->narrowed_begv = 0; >> + > > Sorry, I wrote that this is OK, but it isn't: if init_iterator is called > with 'struct it' that was already initialized by a previous call to > 'reseat', the above will nuke the narrowing. > > So we need something more complicated. ATM I don't see how to solve > this without manually initializing narrowed_begv before the first call > to init_iterator or start_display. Hmm... > Hmmm... So I wasn't completely wrong when I wasn't sure it was TRT 😉 It's a chicken-and-egg problem. On the other hand, even if we nuke the narrowing there, it will be recomputed two lines later, which should be okay.