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

From: Robert Pluim <[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)))

Robert
--