]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix display of before- and after-strings at invisible text
authorEli Zaretskii <eliz@gnu.org>
Sun, 26 Feb 2017 15:56:13 +0000 (17:56 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sun, 26 Feb 2017 15:56:13 +0000 (17:56 +0200)
* 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)

src/xdisp.c

index 91eef0ec47533ef57bfea99621493c37ad0cd756..cec649f590d00c95059bfd74d8bb77e50e0d07c4 100644 (file)
@@ -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