# HG changeset patch # User Jim Blandy # Date 697153285 0 # Node ID 5af35411366ac504fe6c804b9bcb94df67066b18 # Parent 703fd28f892dbef242f2b495b43db0c1f4a5a6c9 *** empty log message *** diff -r 703fd28f892d -r 5af35411366a src/xdisp.c --- a/src/xdisp.c Mon Feb 03 03:20:43 1992 +0000 +++ b/src/xdisp.c Mon Feb 03 21:41:25 1992 +0000 @@ -407,6 +407,13 @@ && (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 @@ /* 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;