summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 39f168dc8a4..8a3714bcf0d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-26 Kenichi Handa <handa@m17n.org>
+
+ * xdisp.c (compute_stop_pos): Pay attention to bidi scan direction
+ on calling composition_compute_stop_pos.
+
2010-08-25 Kenichi Handa <handa@m17n.org>
* fontset.c (reorder_font_vector): Prefer a font-spec specifying
diff --git a/src/xdisp.c b/src/xdisp.c
index 93fdb68eeac..07078a199a3 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3177,7 +3177,7 @@ compute_stop_pos (struct it *it)
{
register INTERVAL iv, next_iv;
Lisp_Object object, limit, position;
- EMACS_INT charpos, bytepos;
+ EMACS_INT charpos, bytepos, stoppos;
/* If nowhere else, stop at the end. */
it->stop_charpos = it->end_charpos;
@@ -3267,8 +3267,12 @@ compute_stop_pos (struct it *it)
}
}
+ if (it->bidi_p && it->bidi_it.scan_dir < 0)
+ stoppos = -1;
+ else
+ stoppos = it->stop_charpos;
composition_compute_stop_pos (&it->cmp_it, charpos, bytepos,
- it->stop_charpos, it->string);
+ stoppos, it->string);
xassert (STRINGP (it->string)
|| (it->stop_charpos >= BEGV