Mercurial > emacs
changeset 107658:6db6f99911e0
Restore original behavior of move_it_in_display_line_to when !bidi_p.
xdisp.c (BUFFER_POS_REACHED_P, move_it_in_display_line_to):
Restore original behavior when the iterator is not bidi_p.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Tue, 30 Mar 2010 15:16:49 -0400 |
parents | 5e0627e338dc |
children | 5540f668f288 fa375bb9de46 |
files | src/ChangeLog src/xdisp.c |
diffstat | 2 files changed, 17 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Tue Mar 30 10:40:04 2010 -0700 +++ b/src/ChangeLog Tue Mar 30 15:16:49 2010 -0400 @@ -1,3 +1,8 @@ +2010-03-30 Eli Zaretskii <eliz@gnu.org> + + * xdisp.c (BUFFER_POS_REACHED_P, move_it_in_display_line_to): + Restore original behavior when the iterator is not bidi_p. + 2010-03-30 Dan Nicolaescu <dann@ics.uci.edu> * xdisp.c (syms_of_xdisp): Use intern_c_string instead of intern.
--- a/src/xdisp.c Tue Mar 30 10:40:04 2010 -0700 +++ b/src/xdisp.c Tue Mar 30 15:16:49 2010 -0400 @@ -6999,7 +6999,8 @@ #define BUFFER_POS_REACHED_P() \ ((op & MOVE_TO_POS) != 0 \ && BUFFERP (it->object) \ - && IT_CHARPOS (*it) == to_charpos \ + && (IT_CHARPOS (*it) == to_charpos \ + || (!it->bidi_p && IT_CHARPOS (*it) > to_charpos)) \ && (it->method == GET_FROM_BUFFER \ || (it->method == GET_FROM_DISPLAY_VECTOR \ && it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) @@ -7023,14 +7024,16 @@ if ((op & MOVE_TO_POS) != 0 && BUFFERP (it->object) && it->method == GET_FROM_BUFFER - && (prev_method == GET_FROM_IMAGE - || prev_method == GET_FROM_STRETCH) - /* Passed TO_CHARPOS from left to right. */ - && ((prev_pos < to_charpos - && IT_CHARPOS (*it) > to_charpos) - /* Passed TO_CHARPOS from right to left. */ - || (prev_pos > to_charpos) - && IT_CHARPOS (*it) < to_charpos)) + && ((!it->bidi_p && IT_CHARPOS (*it) > to_charpos) + || (it->bidi_p + && (prev_method == GET_FROM_IMAGE + || prev_method == GET_FROM_STRETCH) + /* Passed TO_CHARPOS from left to right. */ + && ((prev_pos < to_charpos + && IT_CHARPOS (*it) > to_charpos) + /* Passed TO_CHARPOS from right to left. */ + || (prev_pos > to_charpos + && IT_CHARPOS (*it) < to_charpos))))) { if (it->line_wrap != WORD_WRAP || wrap_it.sp < 0) {