# HG changeset patch # User Chong Yidong # Date 1217274071 0 # Node ID be179fc25735e9cc8fa403b2ec546218e08a8111 # Parent 32f84c66697a231db200dfd116bc9985f6eb3596 (redisplay_window): Check return value of compute_window_start_on_continuation_line before forcing a window start. diff -r 32f84c66697a -r be179fc25735 src/xdisp.c --- a/src/xdisp.c Mon Jul 28 19:40:22 2008 +0000 +++ b/src/xdisp.c Mon Jul 28 19:41:11 2008 +0000 @@ -13239,14 +13239,19 @@ && 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");