1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-01 03:11:09 -08:00

(move_it_vertically_backward): Do the final big else even if nlines is 0.

(redisplay_internal): Finish the per-frame loop
even if redisplay is suspended by input.
This commit is contained in:
Richard M. Stallman 2003-04-30 12:03:53 +00:00
parent 167899c437
commit ccbb9ed2e0

View file

@ -5823,10 +5823,14 @@ move_it_vertically_backward (it, dy)
move_it_to (&it2, start_pos, -1, -1, -1, MOVE_TO_POS);
xassert (IT_CHARPOS (*it) >= BEGV);
/* H is the actual vertical distance from the position in *IT
and the starting position. */
h = it2.current_y - it->current_y;
/* NLINES is the distance in number of lines. */
nlines = it2.vpos - it->vpos;
/* Correct IT's y and vpos position. */
/* Correct IT's y and vpos position
so that they are relative to the starting point. */
it->vpos -= nlines;
it->current_y -= h;
@ -5838,10 +5842,10 @@ move_it_vertically_backward (it, dy)
move_it_by_lines (it, nlines, 1);
xassert (IT_CHARPOS (*it) <= start_pos);
}
else if (nlines)
else
{
/* The y-position we try to reach. Note that h has been
subtracted in front of the if-statement. */
/* The y-position we try to reach, relative to *IT.
Note that H has been subtracted in front of the if-statement. */
int target_y = it->current_y + h - dy;
int y0 = it3.current_y;
int y1 = line_bottom_y (&it3);
@ -9999,8 +10003,10 @@ redisplay_internal (preserve_echo_area)
/* Update the display. */
set_window_update_flags (XWINDOW (f->root_window), 1);
pause |= update_frame (f, 0, 0);
#if 0 /* Exiting the loop can leave the wrong value for buffer_shared. */
if (pause)
break;
#endif
if (n == size)
{