Subject: bug#54914: 28.1.50; Unable to form Brahmi conjuncts in Emacs

From: Eli Zaretskii <[email-masked]>
Date: Sat, 16 Apr 2022 13:22:07 +0300

> From: Robert Pluim <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Thu, 14 Apr 2022 11:07:23 +0200
> 
> >>>>> On Wed, 13 Apr 2022 21:26:55 +0300, Eli Zaretskii <[email-masked]> said:
> 
>     >> From: Robert Pluim <[email-masked]>
>     >> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
>     >> Date: Wed, 13 Apr 2022 18:56:21 +0200
>     >> 
>     >> A brute-force example of what Eli's talking about would be:
>     >> 
>     >> (set-char-table-range composition-function-table
>     >> '(#x11000 . #x1107F)
>     >> (list (vector "[\x11000-\x1107F]+" 0 #'font-shape-gstring)))
> 
>     Eli> Does that really work?  I'm not sure it will catch the "consonant,
>     Eli> virama, consonant" rule (because the virama is a nonspacing mark, and
>     Eli> we have a default rule for those in composite.el).
> 
> We do indeed. The following handles only Ka through Lla in combination
> with Virama, and seems to do the right thing here with Segoe UI
> Historic (which I donʼt think we can set as default for the Brahmi
> script, since itʼs non-free).
> 
> ;; <Consonant, Virama, Consonant>, or <Consonant, Virama>, where the
> ;; latter indicates a vowelless consonant.
> (set-char-table-range composition-function-table
> 		      '(#x11013 . #x11034)
> 		      (list (vector "[\x11013-\x11034]\x11046[\x11013-\x11034]?"
>                                     0 #'font-shape-gstring)))

I've now added support for the Brahmi script to the master branch;
please test and report any problems you find.

(We cannot advertise Segoe UI Historic, unfortunately, since it is not
a free font, AFAICT.)