> > Example of text that doesn't render correctly? > For example in tirhuta, when I do this: ;; Tirhuta composition rules (let ((consonant "[\x1148F-\x114AF]") (nukta "\x114C3") (independent-vowel "[\x11481-\x1148E]") (vowel "[\x114B0-\x114BE]") (nasal "[\x114BF\x114C0]") (virama "\x114C2")) (set-char-table-range composition-function-table '(#x114B0 . #x114BE) (list (vector ;; Consonant based syllables (concat consonant nukta "?\\(?:" virama consonant nukta "?\\)*\\(?:" virama "\\|" vowel "*" nukta "?" nasal "?\\)") 1 'font-shape-gstring)))) Notice here, the nasal sign is not included in the range. And then I type: 𑒅𑓀 𑒆đ‘’ŋ It is rendered correctly But when I do: ;; Tirhuta composition rules (let ((consonant "[\x1148F-\x114AF]") (nukta "\x114C3") (independent-vowel "[\x11481-\x1148E]") (vowel "[\x114B0-\x114BE]") (nasal "[\x114BF\x114C0]") (virama "\x114C2")) (set-char-table-range composition-function-table '(#x114B0 . #x114C0) (list (vector ;; Consonant based syllables (concat consonant nukta "?\\(?:" virama consonant nukta "?\\)*\\(?:" virama "\\|" vowel "*" nukta "?" nasal "?\\)") 1 'font-shape-gstring)))) The range now has the nasal signs. And then type the above characters: 𑒅𑓀 𑒆đ‘’ŋ They are not rendered correctly But when I include their composition rules: ;; Tirhuta composition rules (let ((consonant "[\x1148F-\x114AF]") (nukta "\x114C3") (independent-vowel "[\x11481-\x1148E]") (vowel "[\x114B0-\x114BE]") (nasal "[\x114BF\x114C0]") (virama "\x114C2")) (set-char-table-range composition-function-table '(#x114B0 . #x114C0) (list (vector ;; Consonant based syllables (concat consonant nukta "?\\(?:" virama consonant nukta "?\\)*\\(?:" virama "\\|" vowel "*" nukta "?" nasal "?\\)") 1 'font-shape-gstring) (vector ;; Nasal vowels (concat independent-vowel nasal "?") 1 'font-shape-gstring)))) They are now once more rendered correctly. So my suggestion is to debug this and figure out why it hangs. Maybe > begin by posting the composition rules that you tried originally, and > let's take it from there. > I think I found the problem, this was due to the independent vowel and nasal rule, I will fix it later. I don't think I understand this part, either. Please elaborate. > You had said that since the range only contains vowel signs, (consonant + nasal) rule does not apply, only (consonant + vowel + nasal) will. I then said that (consonant + nasal) renders fine without a rule, but (consonant + vowel + nasal) does not, therefore I had to add a rule for that. On Thu, May 12, 2022 at 7:31 PM Eli Zaretskii wrote: > > From: ā¤¸ā¤ŽāĨ€ā¤° ā¤¸ā¤ŋā¤‚ā¤š Sameer Singh > > Date: Thu, 12 May 2022 19:12:09 +0530 > > Cc: 55370@debbugs.gnu.org > > > > I have noticed that when there is no nasal sign in the range of the > set-char-table-range function, it is rendered > > correctly when alone with a consonant or an independent vowel. > > But when it is added to the range, it is not displayed correctly, until > and unless a composition rule is added > > for it. > > Example of text that doesn't render correctly? > > > Sometimes for scripts like Syloti Nagri, Sharada and Kaithi these signs > are not in a contiguous range with > > virama and vowel signs (they are far away) > > So when I add them to the range, Emacs starts to hang. (Maybe because > the range is too big, or there are > > unnecessary symbols like consonants there) > > This is why I had decided to not include them, because they were still > rendering fine. > > > > So should I leave them as it is, or make another set-char-table-range > that includes only them? > > I cannot say, because I don't think I understand the issue. In > particular, Emacs should never hang due to this stuff. > > So my suggestion is to debug this and figure out why it hangs. Maybe > begin by posting the composition rules that you tried originally, and > let's take it from there. > > > Similarly here: this rule will never match if 'vowel' isn't present, > > because the second character of the matching sequence _must_ be a > > vowel, since that is what triggers the composition rule in the first > > place. Am I missing something? > > > > Here too since consonant vowel nasal was not rendering I added the rule, > maybe I should remove the "?" > > after vowel. > > (consonant nasal was rendering fine) > > I don't think I understand this part, either. Please elaborate. >