changeset 97067:fe3f6c044772

(redisplay_window): Check return value of compute_window_start_on_continuation_line before forcing a window start.
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 28 Jul 2008 19:37:08 +0000
parents 56e49e6c5c52
children 0d03ecbf000f
files src/xdisp.c
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Mon Jul 28 19:36:56 2008 +0000
+++ b/src/xdisp.c	Mon Jul 28 19:37:08 2008 +0000
@@ -13658,11 +13658,16 @@
 	  && NILP (do_mouse_tracking)
       	  && CHARPOS (startp) > BEGV
 	  && CHARPOS (startp) > BEG + beg_unchanged
-	  && CHARPOS (startp) <= Z - end_unchanged)
+	  && CHARPOS (startp) <= Z - end_unchanged
+	  /* Even if w->start_at_line_beg is nil, a new window may
+	     start at a line_beg, since that's how set_buffer_window
+	     sets it.  So, we need to check the return value of
+	     compute_window_start_on_continuation_line.  (See also
+	     bug#197).  */
+	  && XMARKER (w->start)->buffer == current_buffer
+	  && compute_window_start_on_continuation_line (w))
 	{
 	  w->force_start = Qt;
-	  if (XMARKER (w->start)->buffer == current_buffer)
-	    compute_window_start_on_continuation_line (w);
 	  SET_TEXT_POS_FROM_MARKER (startp, w->start);
 	  goto force_start;
       	}