Subject: bug#33729: 27.0.50; Partial glyphs not rendered for Gujarati with Harfbuzz enabled (renders fine using m17n)

From: Eli Zaretskii <[email-masked]>
Date: Sat, 22 Dec 2018 18:33:52 +0200

> Date: Sat, 22 Dec 2018 17:49:45 +0200
> From: Khaled Hosny <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked],
> 	[email-masked], [email-masked]
> 
> Yes, the standard Unicode composition and decomposition. HarfBuzz uses
> these during shaping (it prefers composed form for a given sequence if
> supported by the font, and falls back to decomposed form otherwise).
> 
> > > I recall you suggested something earlier that I tried but couldn’t
> > > get to work, the exact detail escapes me.
> > 
> > I probably suggested using the 'decomposition' property of a
> > character, and perhaps als the facilities in ucs-normalize.el.
> 
> How can this be done from C.

There are several examples in the sources of calling Lisp from C.  As
just a random example:

	if (STRINGP (curdir))
	  val = call1 (intern ("file-remote-p"), curdir);

This calls the Lisp function file-remote-p with one argument, curdir.

If you tell me more about the arguments and the expected effects of
calling uni_compose and uni_decompose, maybe I could propose a
specific implementation.  The Harfbuzz documentation doesn't seem to
tell enough, or maybe I didn't find the right text.

Thanks.