Mercurial > emacs
changeset 54443:f4debae4b1d1
(move_it_in_display_line_to): Fix MOVE_TO_POS case when
to_charpos corresponds to newline in right fringe. Use local
BUFFER_POS_REACHED_P macro.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Fri, 19 Mar 2004 20:32:39 +0000 |
parents | 5755a6bed7a0 |
children | cc59780b7487 |
files | src/xdisp.c |
diffstat | 1 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Fri Mar 19 13:57:08 2004 +0000 +++ b/src/xdisp.c Fri Mar 19 20:32:39 2004 +0000 @@ -5594,15 +5594,18 @@ saved_glyph_row = it->glyph_row; it->glyph_row = NULL; +#define BUFFER_POS_REACHED_P() \ + ((op & MOVE_TO_POS) != 0 \ + && BUFFERP (it->object) \ + && IT_CHARPOS (*it) >= to_charpos) + while (1) { int x, i, ascent = 0, descent = 0; /* Stop when ZV or TO_CHARPOS reached. */ if (!get_next_display_element (it) - || ((op & MOVE_TO_POS) != 0 - && BUFFERP (it->object) - && IT_CHARPOS (*it) >= to_charpos)) + || BUFFER_POS_REACHED_P ()) { result = MOVE_POS_MATCH_OR_ZV; break; @@ -5689,7 +5692,8 @@ #ifdef HAVE_WINDOW_SYSTEM if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) { - if (!get_next_display_element (it)) + if (!get_next_display_element (it) + || BUFFER_POS_REACHED_P ()) { result = MOVE_POS_MATCH_OR_ZV; break; @@ -5761,7 +5765,8 @@ #ifdef HAVE_WINDOW_SYSTEM if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) { - if (!get_next_display_element (it)) + if (!get_next_display_element (it) + || BUFFER_POS_REACHED_P ()) { result = MOVE_POS_MATCH_OR_ZV; break; @@ -5778,6 +5783,8 @@ } } +#undef BUFFER_POS_REACHED_P + /* Restore the iterator settings altered at the beginning of this function. */ it->glyph_row = saved_glyph_row;