From: Eli Zaretskii Date: Sun, 26 Feb 2017 15:56:13 +0000 (+0200) Subject: Fix display of before- and after-strings at invisible text X-Git-Tag: emacs-26.0.90~709 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2bb467a2e2fc70d387ca9a174d5d3a1417a13008;p=emacs.git Fix display of before- and after-strings at invisible text * src/xdisp.c (next_overlay_string): Don't raise the ignore_overlay_strings_at_pos_p flag if the iterator is already set to continue at a buffer position different from the one where the overlay strings we just processed were loaded. (Bug#25856) --- diff --git a/src/xdisp.c b/src/xdisp.c index 91eef0ec475..cec649f590d 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -5557,9 +5557,14 @@ next_overlay_string (struct it *it) /* Since we've exhausted overlay strings at this buffer position, set the flag to ignore overlays until we move to - another position. The flag is reset in - next_element_from_buffer. */ - it->ignore_overlay_strings_at_pos_p = true; + another position. (The flag will be reset in + next_element_from_buffer.) But don't do that if the overlay + strings were loaded at position other than the current one, + which could happen if we called pop_it above, or if the + overlay strings were loaded by handle_invisible_prop at the + beginning of invisible text. */ + if (it->overlay_strings_charpos == IT_CHARPOS (*it)) + it->ignore_overlay_strings_at_pos_p = true; /* If we're at the end of the buffer, record that we have processed the overlay strings there already, so that