changeset 16658:584563254f25

(window_scroll): Don't set w->start or w->force_start if signaling an error.
author Richard M. Stallman <rms@gnu.org>
date Tue, 10 Dec 1996 23:26:48 +0000
parents f31cab608aa9
children e7bf457086fb
files src/window.c
diffstat 1 files changed, 9 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/window.c	Tue Dec 10 23:25:45 1996 +0000
+++ b/src/window.c	Tue Dec 10 23:26:48 1996 +0000
@@ -2652,10 +2652,7 @@
   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 @@
   if (NILP (tem))
     {
       Fvertical_motion (make_number (- (ht / 2)), window);
-      XSETFASTINT (tem, PT);
-      Fset_marker (w->start, tem, w->buffer);
+      startpos = PT;
     }
-
-  SET_PT (marker_position (w->start));
+  else
+    startpos = marker_position (w->start);
+
+  SET_PT (startpos);
   lose = n < 0 && PT == BEGV;
   Fvertical_motion (make_number (n), window);
   pos = PT;
@@ -2700,6 +2698,9 @@
       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.  */