From: Eli Zaretskii Date: Tue, 12 Feb 2013 16:36:55 +0000 (+0200) Subject: Minor additional fix in the wake of bugs #13623 and 13626. X-Git-Url: https://git.hcoop.net/bpt/emacs.git/commitdiff_plain/33b49d71e45e3be1db4577277763f1cb3138d225 Minor additional fix in the wake of bugs #13623 and 13626. src/xdisp.c (redisplay_internal): Don't set w->region_showing to the marker's position. (display_line): Set w->region_showing to the value of it->region_beg_charpos, not to -1. This fixes redisplay optimization when cursor is moved up after M->. src/window.h (struct window): region_showing can no longer be negative. --- diff --git a/src/ChangeLog b/src/ChangeLog index 30470f5730..fb4cc72364 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2013-02-12 Eli Zaretskii + + * xdisp.c (redisplay_internal): Don't set w->region_showing to the + marker's position. + (display_line): Set w->region_showing to the value of + it->region_beg_charpos, not to -1. This fixes redisplay + optimization when cursor is moved up after M->. (Bug#13623) + (Bug#13626) + + * window.h (struct window): region_showing can no longer be + negative. + 2013-02-11 Paul Eggert Tune by using memchr and memrchr. diff --git a/src/window.h b/src/window.h index 0f4f242641..dcef37abb4 100644 --- a/src/window.h +++ b/src/window.h @@ -338,8 +338,7 @@ struct window int vscroll; /* If we have highlighted the region (or any part of it), the mark - position or -1 (the latter is used by the iterator for internal - purposes); otherwise zero. */ + (region start) position; otherwise zero. */ ptrdiff_t region_showing; /* Z_BYTE - buffer position of the last glyph in the current matrix of W. diff --git a/src/xdisp.c b/src/xdisp.c index 463f4f9ef0..ca3f968afa 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13244,8 +13244,6 @@ redisplay_internal (void) ++clear_image_cache_count; #endif - w->region_showing = XINT (Fmarker_position (BVAR (XBUFFER (w->buffer), mark))); - /* Build desired matrices, and update the display. If consider_all_windows_p is non-zero, do it for all windows on all frames. Otherwise do it for selected_window, only. */ @@ -19138,7 +19136,7 @@ display_line (struct it *it) } /* Is IT->w showing the region? */ - it->w->region_showing = it->region_beg_charpos > 0 ? -1 : 0; + it->w->region_showing = it->region_beg_charpos > 0 ? it->region_beg_charpos : 0; /* Clear the result glyph row and enable it. */ prepare_desired_row (row);