From 2be8f1844877025da964cc34a38b191eaf4b63c5 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Fri, 24 Nov 2000 19:29:26 +0000 Subject: [PATCH] (init_from_display_pos): If POS says we're already after an overlay string ending at POS, make sure to pop the iterator because it will be in front of that overlay string. When POS is ZV, we've thereby also ``processed'' overlay strings at ZV. --- src/ChangeLog | 5 +++++ src/xdisp.c | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index ecbe9feb14c..2d32e169654 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2000-11-24 Gerd Moellmann + * xdisp.c (init_from_display_pos): If POS says we're already after + an overlay string ending at POS, make sure to pop the iterator + because it will be in front of that overlay string. When POS is + ZV, we've thereby also ``processed'' overlay strings at ZV. + * xfaces.c (lface_from_face_name): Function comment fix. 2000-11-24 Miles Bader diff --git a/src/xdisp.c b/src/xdisp.c index 8d5d2b6b6f6..6cec7760926 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -1730,7 +1730,20 @@ init_from_display_pos (it, w, pos) it->current.string_pos = pos->string_pos; it->method = next_element_from_string; } - else if (CHARPOS (pos->string_pos) >= 0) + else if (it->current.overlay_string_index >= 0) + { + /* If POS says we're already after an overlay string ending at + POS, make sure to pop the iterator because it will be in + front of that overlay string. When POS is ZV, we've thereby + also ``processed'' overlay strings at ZV. */ + pop_it (it); + it->current.overlay_string_index = -1; + it->method = next_element_from_buffer; + if (CHARPOS (pos->pos) == ZV) + it->overlay_strings_at_end_processed_p = 1; + } + + if (CHARPOS (pos->string_pos) >= 0) { /* Recorded position is not in an overlay string, but in another string. This can only be a string from a `display' property. -- 2.39.2