Fixed and pushed.
On 12/07/10 09:14, Jonathan Kew wrote: > Hi Behdad, > > I've noticed that shaping isn't working correctly for text with overridden > direction; this shows up with examples like > > data:text/html,<p > style="unicode-bidi:bidi-override;direction:ltr;font-family:scheherazade">العربي > > in harfbuzz-ng-based Firefox builds. > > The problem arises because hb_ot_shape_execute_internal() does > hb_ot_shape_setup_masks() before it calls hb_ensure_native_direction(), which > may reverse the buffer; but this means that the feature masks are set based > on the original direction of the buffer, not its overridden direction. > > Moving the call to hb_ot_shape_setup_masks() after > hb_ensure_native_direction() seems to fix this, but I'm not sure if there are > other potential issues (relating to mirroring, for example) that might > complicate this. Alternatively, if it's problematic to reorder the stages > here, I suppose _hb_ot_shape_complex_setup_masks_arabic() could be made > direction-aware, and iterate backwards over the buffer in the LTR-override > case. But that will be an issue for all complex-script shapers, so I think > it's preferable to fix it at the hb_ot_shape_execute_internal() level. > > Jonathan > > _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
