diff -c /home/rms/e20/src/xdisp.c.\~2\~ /home/rms/e20/src/xdisp.c *** /home/rms/e20/src/xdisp.c.~2~ Thu Sep 10 10:58:09 1998 --- /home/rms/e20/src/xdisp.c Sun Oct 11 21:14:15 1998 *************** *** 1951,1956 **** --- 1951,1958 ---- w->force_start = Qnil; /* Forget any recorded base line for line number display. */ w->base_line_number = Qnil; + /* The old bottom-of-screen position is no longer valid. */ + w->window_end_valid = Qnil; /* Redisplay the mode line. Select the buffer properly for that. Also, run the hook window-scroll-functions because we have scrolled. */ *************** *** 2275,2280 **** --- 2277,2284 ---- scroll_conservatively ? pos.vpos + 1 : scroll_step, w); + /* The old bottom-of-screen position is no longer valid. */ + w->window_end_valid = Qnil; if (! NILP (Vwindow_scroll_functions)) { set_marker_both (w->start, Qnil, pos.bufpos, pos.bytepos); *************** *** 2316,2321 **** --- 2320,2327 ---- scroll_conservatively ? -pos.vpos : - scroll_step, w); + /* The old bottom-of-screen position is no longer valid. */ + w->window_end_valid = Qnil; if (! NILP (Vwindow_scroll_functions)) { set_marker_both (w->start, Qnil, pos.bufpos, pos.bytepos); *************** *** 2356,2361 **** --- 2362,2370 ---- if (PT >= pos.bufpos) { + /* The old bottom-of-screen position is no longer valid. */ + w->window_end_valid = Qnil; + if (! NILP (Vwindow_scroll_functions)) { set_marker_both (w->start, Qnil, pos.bufpos, pos.bytepos); *************** *** 2406,2411 **** --- 2415,2423 ---- /* Set startp here explicitly in case that helps avoid an infinite loop in case the window-scroll-functions functions get errors. */ set_marker_both (w->start, Qnil, pos.bufpos, pos.bytepos); + + /* The old bottom-of-screen position is no longer valid. */ + w->window_end_valid = Qnil; if (! NILP (Vwindow_scroll_functions)) { run_hook_with_args_2 (Qwindow_scroll_functions, window,