-
Notifications
You must be signed in to change notification settings - Fork 682
Description
[Motivated by https://github.com//issues/381]
Back when we were using indic shaper for many more scripts, we added a decompose() function that decomposes some characters into two where they don't have a Unicode-sanctioned decomposition. Moreover, we have a compose() function that avoids recomposing matras; otherwise the split matras will be recomposed again and shape incorrectly.
However, when we added more shapers, we didn't add compose / decompose to them. In particular, the following characters are decomposed in indic shaper where these days they'll never reach that shaper:
/* Tibetan */
case 0x0F77u : *a = 0x0FB2u; *b= 0x0F81u; return true;
case 0x0F79u : *a = 0x0FB3u; *b= 0x0F81u; 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;
/* Chakma */
case 0x1112Eu : *a = 0x11127u; *b= 0x11131u; return true;
case 0x1112Fu : *a = 0x11127u; *b= 0x11132u; return true;
-
Myanmar shaper: Myanmar doesn't seem to have split vowels. So maybe this one is fine.
-
Tibetan: Do we need the decomposition? We should test with Windows. MS sends Tibetan through USE now. Maybe we should consider that.
-
USE: The spec clearly says the font designer is responsive for decomposition if Unicode doesn't decompose. However, we should test what Windows does and adjust.
cc @jfkthame