From 4d2b0805d34cc9bb4ba04db769afb8d7dad7cc5d Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Mon, 28 Jul 2008 19:41:11 +0000 Subject: [PATCH] (redisplay_window): Check return value of compute_window_start_on_continuation_line before forcing a window start. --- src/xdisp.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index 897dd440f15..4cc4b5f233e 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13239,14 +13239,19 @@ redisplay_window (window, just_this_one_p) && NILP (do_mouse_tracking) && CHARPOS (startp) > BEGV && CHARPOS (startp) > BEG + save_beg_unchanged - && CHARPOS (startp) <= Z - save_end_unchanged) + && CHARPOS (startp) <= Z - save_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; - } + } #if GLYPH_DEBUG debug_method_add (w, "same window start"); -- 2.11.4.GIT