In article <e1oqgxc-0001rs...@fencepost.gnu.org>, Eli Zaretskii <e...@gnu.org> writes:
> > Doesn't it mean uniscribe_shape reorders glyphs? > This reorders a single LGSTRING, according to my reading. Isn't an > LGSTRING a single grapheme cluster, rather than several distinct > characters? No, LGSTRING may contain multiple grapheme clusters. In the case of arabic, we make LGSTRING for one Arabic word then shape it (otherwise, the shaper can't know where in a word a consonant appears). So, usually LGSTRING contains multiple grapheme clusters for Arabic. Glyphs constituting a grapheme cluster has the same value in LGLYPH_FROM (G) and LGLYPH_TO (G) where G is a LGRYPH given by LGSTRING_GLYPH (LGLYPH, IDX). > Btw, where's the documentation of LGSTRING? The commentary to > uniscribe_shape says to look in font-make-gstring, but I cannot find > that, neither as function nor as variable. In general, everything > about compositions and lgstrings needs a lot more of documentation. I renamed font-make-gstring to composition-get-gstring and moved the code to composite.c. The above macros for accessing LGSTRING and LGLYPH are in composite.h. --- Kenichi Handa ha...@m17n.org _______________________________________________ emacs-bidi mailing list emacs-bidi@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-bidi