diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-12-10 23:26:48 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-12-10 23:26:48 +0000 |
commit | 345d45b2c0101cf06735b544e2f1806521f5dea9 (patch) | |
tree | 9821384e80a8b84116acace242eb8b1ee5daf6bd /src/window.c | |
parent | 38b294ca299f5af0abe1a90c3910b08e8971f9cb (diff) | |
download | emacs-345d45b2c0101cf06735b544e2f1806521f5dea9.tar.gz |
(window_scroll): Don't set w->start or w->force_start if signaling an error.
Diffstat (limited to 'src/window.c')
-rw-r--r-- | src/window.c | 15 |
1 files changed, 8 insertions, 7 deletions
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. */ |