aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2011-08-22 20:00:40 +0300
committerEli Zaretskii2011-08-22 20:00:40 +0300
commitdac347dd4a459bbbd7274f106797201e6e420701 (patch)
treeec814d7de7421d2720d9a7d31247f3f1e6e810a1
parent4d993e7b54b8d302f8b3f96b5c044ce1a0486357 (diff)
downloademacs-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/ChangeLog6
-rw-r--r--src/xdisp.c7
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 @@
12011-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
12011-08-22 Chong Yidong <cyd@stupidchicken.com> 72011-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)))