b=617231 ensure-direction before doing any complex work, and handle mirroring (from harfbuzz ee8aaf976a6e) r=jfkthame a=roc

--HG--
extra : transplant_source : %80%B5%D5s%21f%112%83%5C%CC%18%8C%2CG%01%17-%3A%9A
This commit is contained in:
Behdad Esfahbod 2010-12-09 19:46:01 +13:00
Родитель a0d8b0d997
Коммит 0ba46b8877
2 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -193,7 +193,7 @@ hb_mirror_chars (hb_ot_shape_context_t *c)
{
hb_unicode_get_mirroring_func_t get_mirroring = c->buffer->unicode->v.get_mirroring;
if (HB_DIRECTION_IS_FORWARD (c->buffer->props.direction))
if (HB_DIRECTION_IS_FORWARD (c->original_direction))
return;
hb_mask_t rtlm_mask = c->plan->map.get_1_mask (HB_TAG ('r','t','l','m'));
@ -300,6 +300,8 @@ hb_ot_shape_execute_internal (hb_ot_shape_context_t *c)
hb_set_unicode_props (c); /* BUFFER: Set general_category and combining_class in var1 */
hb_ensure_native_direction (c);
hb_form_clusters (c);
hb_ot_shape_setup_masks (c); /* BUFFER: Clobbers var2 */
@ -309,8 +311,6 @@ hb_ot_shape_execute_internal (hb_ot_shape_context_t *c)
/* Mirroring needs to see the original direction */
hb_mirror_chars (c);
hb_ensure_native_direction (c);
hb_substitute_default (c);
hb_ot_substitute_complex (c);

Просмотреть файл

@ -20,8 +20,8 @@ random-if(cocoaWidget) == mirroring-02.html mirroring-02-ref.html
== mixedChartype-00-j.html mixedChartype-00-ref.html
== mixedChartype-01.html mixedChartype-01-ref.html
== mixedChartype-01-j.html mixedChartype-01-ref.html
random-if(winWidget) == mixedChartype-02.html mixedChartype-02-ref.html
random-if(winWidget) == mixedChartype-02-j.html mixedChartype-02-ref.html
== mixedChartype-02.html mixedChartype-02-ref.html
== mixedChartype-02-j.html mixedChartype-02-ref.html
== mixedChartype-03.html mixedChartype-03-ref.html
== mixedChartype-03-j.html mixedChartype-03-ref.html
== with-first-letter-1a.html with-first-letter-1-ref.html