src/hb-ot-shape-complex-indic.cc | 24 --------------------- src/hb-ot-shape-complex-use.cc | 43 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 25 deletions(-)
New commits: commit 6cff75394192a1ab0dda82981752ade532838333 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Dec 28 13:46:21 2016 -0500 Remove Tibetan decomposition rules from Indic shaper The decomposition is very obscure and unlikely to help any fonts. Just remove it since Uniscribe probably doesn't do this either. Fixes https://github.com/behdad/harfbuzz/issues/382 diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 19aca56..b48fb56 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -1721,10 +1721,6 @@ decompose_indic (const hb_ot_shape_normalize_context_t *c, * Decompose split matras that don't have Unicode decompositions. */ - /* Tibetan */ - case 0x0F77u : *a = 0x0FB2u; *b= 0x0F81u; return true; - case 0x0F79u : *a = 0x0FB3u; *b= 0x0F81u; return true; - /* Khmer */ case 0x17BEu : *a = 0x17C1u; *b= 0x17BEu; return true; case 0x17BFu : *a = 0x17C1u; *b= 0x17BFu; return true; commit f6ba63b2e8eb577385f70758efdd3b8408c8a9cb Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Dec 28 13:45:32 2016 -0500 Port decompositions from Indic to USE shaper Part of https://github.com/behdad/harfbuzz/issues/382 diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 36fa014..19aca56 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -1732,13 +1732,6 @@ decompose_indic (const hb_ot_shape_normalize_context_t *c, case 0x17C4u : *a = 0x17C1u; *b= 0x17C4u; return true; case 0x17C5u : *a = 0x17C1u; *b= 0x17C5u; return true; - /* Limbu */ - case 0x1925u : *a = 0x1920u; *b= 0x1923u; return true; - case 0x1926u : *a = 0x1920u; *b= 0x1924u; return true; - - /* Balinese */ - case 0x1B3Cu : *a = 0x1B42u; *b= 0x1B3Cu; return true; - #if 0 /* Gujarati */ /* This one has no decomposition in Unicode, but needs no decomposition either. */ @@ -1746,15 +1739,6 @@ decompose_indic (const hb_ot_shape_normalize_context_t *c, /* Oriya */ case 0x0B57u : *a = no decomp, -> RIGHT; return true; - - /* Lepcha */ - case 0x1C29u : *a = no decomp, -> LEFT; return true; - - /* Javanese */ - case 0xA9C0u : *a = no decomp, -> RIGHT; return true; - - /* Sharada */ - case 0x111BFu : *a = no decomp, -> ABOVE; return true; #endif } diff --git a/src/hb-ot-shape-complex-use.cc b/src/hb-ot-shape-complex-use.cc index af68706..5b19d5d 100644 --- a/src/hb-ot-shape-complex-use.cc +++ b/src/hb-ot-shape-complex-use.cc @@ -572,6 +572,28 @@ decompose_use (const hb_ot_shape_normalize_context_t *c, */ case 0x1112Eu : *a = 0x11127u; *b= 0x11131u; return true; case 0x1112Fu : *a = 0x11127u; *b= 0x11132u; return true; + + /* + * Decompose split matras that don't have Unicode decompositions. + */ + + /* Limbu */ + case 0x1925u : *a = 0x1920u; *b= 0x1923u; return true; + case 0x1926u : *a = 0x1920u; *b= 0x1924u; return true; + + /* Balinese */ + case 0x1B3Cu : *a = 0x1B42u; *b= 0x1B3Cu; return true; + +#if 0 + /* Lepcha */ + case 0x1C29u : *a = no decomp, -> LEFT; return true; + + /* Javanese */ + case 0xA9C0u : *a = no decomp, -> RIGHT; return true; + + /* Sharada */ + case 0x111BFu : *a = no decomp, -> ABOVE; return true; +#endif } return (bool) c->unicode->decompose (ab, a, b); commit e678b537f77954615721abd65fef28854f95dc5d Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Dec 26 14:11:59 2016 -0500 [indic] Remove Chakma decomposition rule from Indic shaper This is now added to USE: https://github.com/behdad/harfbuzz/pull/383 See: https://github.com/behdad/harfbuzz/issues/381 https://github.com/behdad/harfbuzz/issues/382 diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 54fbfff..36fa014 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -1739,10 +1739,6 @@ decompose_indic (const hb_ot_shape_normalize_context_t *c, /* Balinese */ case 0x1B3Cu : *a = 0x1B42u; *b= 0x1B3Cu; return true; - /* Chakma */ - case 0x1112Eu : *a = 0x11127u; *b= 0x11131u; return true; - case 0x1112Fu : *a = 0x11127u; *b= 0x11132u; return true; - #if 0 /* Gujarati */ /* This one has no decomposition in Unicode, but needs no decomposition either. */ commit 49ba698124399373cea000d08e0e9fe5fc2396e8 Author: jfkthame <jfkth...@gmail.com> Date: Wed Dec 28 18:00:51 2016 +0000 [use] Special-case Chakma split-vowel decomp in the USE shaper. (#383) diff --git a/src/hb-ot-shape-complex-use.cc b/src/hb-ot-shape-complex-use.cc index 13c7ab3..af68706 100644 --- a/src/hb-ot-shape-complex-use.cc +++ b/src/hb-ot-shape-complex-use.cc @@ -559,6 +559,25 @@ reorder (const hb_ot_shape_plan_t *plan, } static bool +decompose_use (const hb_ot_shape_normalize_context_t *c, + hb_codepoint_t ab, + hb_codepoint_t *a, + hb_codepoint_t *b) +{ + switch (ab) + { + /* Chakma: + * Special case where the Unicode decomp gives matras in the wrong order + * for cluster validation. + */ + case 0x1112Eu : *a = 0x11127u; *b= 0x11131u; return true; + case 0x1112Fu : *a = 0x11127u; *b= 0x11132u; return true; + } + + return (bool) c->unicode->decompose (ab, a, b); +} + +static bool compose_use (const hb_ot_shape_normalize_context_t *c, hb_codepoint_t a, hb_codepoint_t b, @@ -582,7 +601,7 @@ const hb_ot_complex_shaper_t _hb_ot_complex_shaper_use = NULL, /* preprocess_text */ NULL, /* postprocess_glyphs */ HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, - NULL, /* decompose */ + decompose_use, compose_use, setup_masks_use, NULL, /* disable_otl */ _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/harfbuzz