From 345d45b2c0101cf06735b544e2f1806521f5dea9 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 Dec 1996 23:26:48 +0000 Subject: (window_scroll): Don't set w->start or w->force_start if signaling an error. --- src/window.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/window.c') diff --git a/src/window.c b/src/window.c index 0883f0ccb34..a6015ddfae9 100644 --- a/src/window.c +++ b/src/window.c @@ -2652,10 +2652,7 @@ window_scroll (window, n, noerror) register Lisp_Object tem; int lose; Lisp_Object bolp, nmoved; - - /* Always set force_start so that redisplay_window will run - the window-scroll-functions. */ - w->force_start = Qt; + int startpos; XSETFASTINT (tem, PT); tem = Fpos_visible_in_window_p (tem, window); @@ -2663,11 +2660,12 @@ window_scroll (window, n, noerror) if (NILP (tem)) { Fvertical_motion (make_number (- (ht / 2)), window); - XSETFASTINT (tem, PT); - Fset_marker (w->start, tem, w->buffer); + startpos = PT; } + else + startpos = marker_position (w->start); - SET_PT (marker_position (w->start)); + SET_PT (startpos); lose = n < 0 && PT == BEGV; Fvertical_motion (make_number (n), window); pos = PT; @@ -2700,6 +2698,9 @@ window_scroll (window, n, noerror) w->update_mode_line = Qt; XSETFASTINT (w->last_modified, 0); XSETFASTINT (w->last_overlay_modified, 0); + /* Set force_start so that redisplay_window will run + the window-scroll-functions. */ + w->force_start = Qt; /* If we scrolled forward, put point enough lines down that it is outside the scroll margin. */ -- cgit v1.2.1