I did the changes mentioned. 1. Added the square brackets 2. Changed the 1 to a 0 ;; Kaithi composition rules (let ((consonant "[\x1108D-\x110AF]") (non-consonant "[^\x1108D-\x110AF\x110B9]") (vowel "[\x110B0-\x110B8\x110C2]") (anusvara-candrabindu "[\x11080\x11081]") (virama "\x110B9") (number-sign "\x110BD") (number-sign-above "\x110CD") (numerals "[\x966-\x96F]")) (set-char-table-range composition-function-table '(#x110B0 . #x110B8) (list (vector (concat consonant vowel anusvara-candrabindu "?") 1 'font-shape-gstring))) (set-char-table-range composition-function-table '(#x110B9 . #x110B9) (list (vector (concat consonant "\\(?:" virama consonant "\\)+" vowel "*\\|" consonant virama) 1 'font-shape-gstring))) (set-char-table-range composition-function-table '(#x110BD . #x110BD) (list (vector (concat number-sign numerals) 0 'font-shape-gstring))) (set-char-table-range composition-function-table '(#x110CD . #x110CD) (list (vector (concat number-sign-above numerals) 0 'font-shape-gstring)))) Now when typed alone they do not appear but when written with numbers, they appear as NOTDEF glyphs On Fri, Apr 29, 2022 at 12:23 PM Eli Zaretskii wrote: > > Date: Fri, 29 Apr 2022 08:52:18 +0300 > > From: Eli Zaretskii > > Cc: emacs-devel@gnu.org > > > > > (numerals "\x966-\x96F")) > > > > I believe this should be > > > > (numerals "[\x966-\x96F]") > > > > IOW, the "[..]" brackets are missing. Maybe that is the cause of your > > problem. > > And one more potential problem. Since the rules for the number signs > are: > > (set-char-table-range composition-function-table > '(#x110BD . #x110BD) > (list (vector > (concat number-sign numerals) > 1 'font-shape-gstring))) > (set-char-table-range composition-function-table > '(#x110CD . #x110CD) > (list (vector > (concat number-sign-above numerals) > 1 'font-shape-gstring)))) > > which means the number signs always come _before_ the character with > which it should be composed, you should use 0 in the rule, not 1. > That number means how many characters to look back for finding the > beginning of a composable sequence, and in these two rules the > sequence _begins_ with the character which triggers composition, so > the look-back is zero, not 1. >