[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r100013: Fix display of composed char
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r100013: Fix display of composed characters from L2R scripts in bidi buffers. (Bug#5977) |
Date: |
Fri, 23 Apr 2010 21:23:51 +0300 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 100013 [merge]
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Fri 2010-04-23 21:23:51 +0300
message:
Fix display of composed characters from L2R scripts in bidi buffers.
(Bug#5977)
xdisp.c (set_iterator_to_next, next_element_from_composition):
After advancing IT past the composition, resync the bidi iterator
with IT's position.
modified:
src/ChangeLog
src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2010-04-23 17:40:47 +0000
+++ b/src/ChangeLog 2010-04-23 18:23:51 +0000
@@ -1,3 +1,10 @@
+2010-04-23 Eli Zaretskii <address@hidden>
+
+ Fix display of composed characters from L2R scripts in bidi buffers.
+ * xdisp.c (set_iterator_to_next, next_element_from_composition):
+ After advancing IT past the composition, resync the bidi iterator
+ with IT's position. (Bug#5977)
+
2010-04-23 Dan Nicolaescu <address@hidden>
* Makefile.in (LD_SWITCH_MACHINE_TEMACS): Remove, unused.
=== modified file 'src/xdisp.c'
--- a/src/xdisp.c 2010-04-23 15:24:39 +0000
+++ b/src/xdisp.c 2010-04-23 18:23:51 +0000
@@ -6274,6 +6274,15 @@
{
IT_CHARPOS (*it) += it->cmp_it.nchars;
IT_BYTEPOS (*it) += it->cmp_it.nbytes;
+ if (it->bidi_p)
+ {
+ if (it->bidi_it.new_paragraph)
+ bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it);
+ /* Resync the bidi iterator with IT's new position.
+ FIXME: this doesn't support bidirectional text. */
+ while (it->bidi_it.charpos < IT_CHARPOS (*it))
+ bidi_get_next_char_visually (&it->bidi_it);
+ }
if (it->cmp_it.to < it->cmp_it.nglyphs)
it->cmp_it.from = it->cmp_it.to;
else
@@ -6995,6 +7004,15 @@
{
IT_CHARPOS (*it) += it->cmp_it.nchars;
IT_BYTEPOS (*it) += it->cmp_it.nbytes;
+ if (it->bidi_p)
+ {
+ if (it->bidi_it.new_paragraph)
+ bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it);
+ /* Resync the bidi iterator with IT's new position.
+ FIXME: this doesn't support bidirectional text. */
+ while (it->bidi_it.charpos < IT_CHARPOS (*it))
+ bidi_get_next_char_visually (&it->bidi_it);
+ }
return 0;
}
it->position = it->current.pos;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r100013: Fix display of composed characters from L2R scripts in bidi buffers. (Bug#5977),
Eli Zaretskii <=