diff options
| author | Eli Zaretskii | 2011-08-22 20:00:40 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2011-08-22 20:00:40 +0300 |
| commit | dac347dd4a459bbbd7274f106797201e6e420701 (patch) | |
| tree | ec814d7de7421d2720d9a7d31247f3f1e6e810a1 | |
| parent | 4d993e7b54b8d302f8b3f96b5c044ce1a0486357 (diff) | |
| download | emacs-dac347dd4a459bbbd7274f106797201e6e420701.tar.gz emacs-dac347dd4a459bbbd7274f106797201e6e420701.zip | |
Fix vertical cursor motion under bidi on auto-composed characters.
src/xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
consider it a hit if to_charpos is anywhere in the range of the
composed buffer positions.
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/xdisp.c | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 243a39af45d..e3cf7546962 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2011-08-22 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition, | ||
| 4 | consider it a hit if to_charpos is anywhere in the range of the | ||
| 5 | composed buffer positions. | ||
| 6 | |||
| 1 | 2011-08-22 Chong Yidong <cyd@stupidchicken.com> | 7 | 2011-08-22 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 8 | ||
| 3 | * image.c (gif_load): Don't assume that each subimage has the same | 9 | * image.c (gif_load): Don't assume that each subimage has the same |
diff --git a/src/xdisp.c b/src/xdisp.c index e773830800e..1878327480f 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -7699,7 +7699,12 @@ move_it_in_display_line_to (struct it *it, | |||
| 7699 | ((op & MOVE_TO_POS) != 0 \ | 7699 | ((op & MOVE_TO_POS) != 0 \ |
| 7700 | && BUFFERP (it->object) \ | 7700 | && BUFFERP (it->object) \ |
| 7701 | && (IT_CHARPOS (*it) == to_charpos \ | 7701 | && (IT_CHARPOS (*it) == to_charpos \ |
| 7702 | || (!it->bidi_p && IT_CHARPOS (*it) > to_charpos)) \ | 7702 | || (!it->bidi_p && IT_CHARPOS (*it) > to_charpos) \ |
| 7703 | || (it->what == IT_COMPOSITION \ | ||
| 7704 | && ((IT_CHARPOS (*it) > to_charpos \ | ||
| 7705 | && to_charpos >= it->cmp_it.charpos) \ | ||
| 7706 | || (IT_CHARPOS (*it) < to_charpos \ | ||
| 7707 | && to_charpos <= it->cmp_it.charpos)))) \ | ||
| 7703 | && (it->method == GET_FROM_BUFFER \ | 7708 | && (it->method == GET_FROM_BUFFER \ |
| 7704 | || (it->method == GET_FROM_DISPLAY_VECTOR \ | 7709 | || (it->method == GET_FROM_DISPLAY_VECTOR \ |
| 7705 | && it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) | 7710 | && it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) |