xdisp.c (compute_stop_pos): Pay attention to bidi scan direction on calling compositi...
authorKenichi Handa <handa@m17n.org>
Thu, 26 Aug 2010 00:47:34 +0000 (09:47 +0900)
committerKenichi Handa <handa@m17n.org>
Thu, 26 Aug 2010 00:47:34 +0000 (09:47 +0900)
src/ChangeLog
src/xdisp.c

index 39f168d..8a3714b 100644 (file)
@@ -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
index 93fdb68..07078a1 100644 (file)
@@ -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