diff options
| author | Eli Zaretskii <eliz@gnu.org> | 2020-04-18 16:29:33 +0300 |
|---|---|---|
| committer | Eli Zaretskii <eliz@gnu.org> | 2020-04-18 16:29:33 +0300 |
| commit | d345c718cef69bf32deecc7bf790c6595e8aae8c (patch) | |
| tree | 6f55345787cbbecde726a00f5a4e3bf63bace15e /src | |
| parent | 13210712a06a53031cfb82ec5dc0ab5f8e720668 (diff) | |
Safeguard the fix of bug#40632
* src/xdisp.c (move_it_to): Restrict the recent fix to iteration
through buffer text.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index abbe882649a..01f272033e5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -9898,9 +9898,13 @@ move_it_to (struct it *it, ptrdiff_t to_charpos, int to_x, int to_y, int to_vpos This could happen when the first display element is wider than the window, or if we have a wrap-prefix that doesn't leave enough space after it to display - even a single character. */ + even a single character. We only do this for moving + through buffer text, as with display/overlay strings + we'd need to also compare it->object's, and this is + unlikely to happen in that case anyway. */ if (IT_CHARPOS (*it) == orig_charpos - && it->method == orig_method) + && it->method == orig_method + && orig_method == GET_FROM_BUFFER) set_iterator_to_next (it, false); it->continuation_lines_width += it->current_x; } |
