]> code.delx.au - gnu-emacs/commitdiff
Fix bug #19201 with after-strings not being displayed.
authorEli Zaretskii <eliz@gnu.org>
Thu, 27 Nov 2014 16:35:27 +0000 (18:35 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 27 Nov 2014 16:35:27 +0000 (18:35 +0200)
 src/xdisp.c (handle_single_display_spec): When ignoring a fringe
 bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
 (next_element_from_buffer): When done with overlays, reset the
 ignore_overlay_strings_at_pos_p flag.

src/ChangeLog
src/xdisp.c

index 23fd46bd4cd421d5b51929c125ec262aa5d09910..5ecb0220026e7bfd5eff020dd589e956d591b508 100644 (file)
@@ -1,3 +1,10 @@
+2014-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (handle_single_display_spec): When ignoring a fringe
+       bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
+       (next_element_from_buffer): When done with overlays, reset the
+       ignore_overlay_strings_at_pos_p flag.  (Bug#19201)
+
 2014-11-25  Eli Zaretskii  <eliz@gnu.org>
 
        * w32fns.c (Fw32_shell_execute): Convert forward slashes in
index 0558aa8099dd5a6bb7186432966a0fa9cd3ffb70..bd262818036d9b5c5d9c7b2c036cdaf2412b40cf 100644 (file)
@@ -5106,6 +5106,11 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
                  iterate_out_of_display_property (it);
                  *position = it->position;
                }
+             /* If we were to display this fringe bitmap,
+                next_element_from_image would have reset this flag.
+                Do the same, to avoid affecting overlays that
+                follow.  */
+             it->ignore_overlay_strings_at_pos_p = 0;
              return 1;
            }
        }
@@ -5125,6 +5130,9 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
              iterate_out_of_display_property (it);
              *position = it->position;
            }
+         if (it)
+           /* Reset this flag like next_element_from_image would.  */
+           it->ignore_overlay_strings_at_pos_p = 0;
          return 1;
        }
 
@@ -8327,6 +8335,10 @@ next_element_from_buffer (struct it *it)
       unsigned char *p;
       ptrdiff_t stop;
 
+      /* We moved to the next buffer position, so any info about
+        previously seen overlays is no longer valid.  */
+      it->ignore_overlay_strings_at_pos_p = 0;
+
       /* Maybe run the redisplay end trigger hook.  Performance note:
         This doesn't seem to cost measurable time.  */
       if (it->redisplay_end_trigger_charpos