summaryrefslogtreecommitdiff
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorJim Blandy <jimb@redhat.com>1992-02-03 21:41:25 +0000
committerJim Blandy <jimb@redhat.com>1992-02-03 21:41:25 +0000
commit05ba02ebb44c3b456a3cd8729ac4c4d7121f0e79 (patch)
tree36a67bbd4ab3c38d1f3fa00487b4d9fd97e6dc3c /src/xdisp.c
parentb86e8615950df9807ee33e987aecbb204f2f9ffa (diff)
downloademacs-05ba02ebb44c3b456a3cd8729ac4c4d7121f0e79.tar.gz
*** empty log message ***
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 86be201caf7..82a92d5a689 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -407,6 +407,13 @@ redisplay ()
&& (XFASTINT (w->last_modified) >= MODIFF
|| (beg_unchanged >= tlbufpos - 1
&& GPT >= tlbufpos
+ /* If selective display, can't optimize
+ if the changes start at the beginning of the line. */
+ && ((XTYPE (current_buffer->selective_display) == Lisp_Int
+ && XINT (current_buffer->selective_display) > 0
+ ? (beg_unchanged >= tlbufpos
+ && GPT > tlbufpos)
+ : 1))
&& end_unchanged >= tlendpos
&& Z - GPT >= tlendpos)))
{
@@ -1081,7 +1088,12 @@ try_window_id (window)
/* If about to start displaying at the beginning of a continuation line,
really start with previous screen line, in case it was not
continued when last redisplayed */
- if (bp.contin && bp.bufpos - 1 == beg_unchanged && vpos > 0)
+ if ((bp.contin && bp.bufpos - 1 == beg_unchanged && vpos > 0)
+ ||
+ /* Likewise if we have to worry about selective display. */
+ (XTYPE (current_buffer->selective_display) == Lisp_Int
+ && XINT (current_buffer->selective_display) > 0
+ && bp.bufpos - 1 == beg_unchanged && vpos > 0))
{
bp = *vmotion (bp.bufpos, -1, width, hscroll, window);
--vpos;