summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2014-11-27 18:35:27 +0200
committerEli Zaretskii <eliz@gnu.org>2014-11-27 18:35:27 +0200
commit6b765b8facbdbb03f28028007885236601652515 (patch)
treedba78252300efba0732df3468d2ea1ce6679e112
parentb3910f653938fc8625f4e0c970123e826bbf427e (diff)
Fix bug #19201 with after-strings not being displayed.
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.
-rw-r--r--src/ChangeLog7
-rw-r--r--src/xdisp.c12
2 files changed, 19 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 23fd46bd4c..5ecb022002 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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
diff --git a/src/xdisp.c b/src/xdisp.c
index 0558aa8099..bd26281803 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -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