script that was used in ancient South Asia. A new input method,
'brahmi', is provided to type text in this script.
+*** New language environment "Kaithi".
+This language environment supports Kaithi or Kayasthi, which was
+an important writing system of the past mainly used for administrative
+purposes. A new input method, 'kaithi', is provided to type text in
+this script.
+
\f
* Changes in Specialized Modes and Packages in Emacs 29.1
The ancient Brahmi script is supported in this language environment."))
'("Indian")) ; Should we have an "Old" category?
+(set-language-info-alist
+ "Kaithi" '((charset unicode)
+ (coding-system utf-8)
+ (coding-priority utf-8)
+ (input-method . "kaithi")
+ (sample-text . "Kaithi (𑂍𑂶𑂟𑂲) 𑂩𑂰𑂧𑂩𑂰𑂧")
+ (documentation . "\
+Languages such as Awadhi, Bhojpuri, Magahi and Maithili
+which used the Kaithi script are supported in this language environment."))
+ '("Indian"))
+
;; Replace mnemonic characters in REGEXP according to TABLE. TABLE is
;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING).
(concat multiplier number-joiner numeral)
1 'font-shape-gstring))))
+;; Kaithi composition rules
+(let ((consonant "[\x1108D-\x110AF]")
+ (nukta "\x110BA")
+ (vowel "[\x1108D-\x110C2]")
+ (anusvara-candrabindu "[\x11080\x11081]")
+ (virama "\x110B9")
+ (number-sign "\x110BD")
+ (number-sign-above "\x110CD")
+ (numerals "[\x966-\x96F]+")
+ (zwj "\x200D"))
+ (set-char-table-range composition-function-table
+ '(#x110B0 . #x110BA)
+ (list (vector
+ (concat consonant nukta "?\\(?:" virama zwj "?" consonant nukta "?\\)*\\(?:"
+ virama zwj "?\\|" vowel "*" nukta "?" anusvara-candrabindu "?\\)")
+ 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))))
+
(provide 'indian)
;;; indian.el ends here
("`/" ?𑁿)
)
+(quail-define-package
+ "kaithi" "Kaithi" "𑂍𑂶" t "Kaithi phonetic input method.
+
+ `\\=`' is used to switch levels instead of Alt-Gr.
+" nil t t t t nil nil nil nil nil t)
+
+(quail-define-rules
+("``" ?₹)
+("1" ?१)
+("`1" ?1)
+("2" ?२)
+("`2" ?2)
+("3" ?३)
+("`3" ?3)
+("4" ?४)
+("`4" ?4)
+("5" ?५)
+("`5" ?5)
+("6" ?६)
+("`6" ?6)
+("7" ?७)
+("`7" ?7)
+("8" ?८)
+("`8" ?8)
+("9" ?९)
+("0" ?०)
+("`0" ?0)
+("`\)" ?𑂻)
+("`\\" ?𑃀)
+("`|" ?𑃁)
+("`" ?𑂗)
+("q" ?𑂗)
+("Q" ?𑂘)
+("w" ?𑂙)
+("W" ?𑂛)
+("`w" ?𑂚)
+("`W" ?𑂜)
+("e" ?𑂵)
+("E" ?𑂶)
+("`e" ?𑂉)
+("`E" ?𑂊)
+("r" ?𑂩)
+("R" ?𑃂)
+("t" ?𑂞)
+("T" ?𑂟)
+("y" ?𑂨)
+("Y" ?⸱)
+("u" ?𑂳)
+("U" ?𑂴)
+("`u" ?𑂇)
+("`U" ?𑂈)
+("i" ?𑂱)
+("I" ?𑂲)
+("`i" ?𑂅)
+("`I" ?𑂆)
+("o" ?𑂷)
+("O" ?𑂸)
+("`o" ?𑂋)
+("`O" ?𑂌)
+("p" ?𑂣)
+("P" ?𑂤)
+("a" ?𑂰)
+("A" ?𑂄)
+("`a" ?𑂃)
+("s" ?𑂮)
+("S" ?𑂬)
+("d" ?𑂠)
+("D" ?𑂡)
+("`d" ?𑂼)
+("`D" #x110BD) ; Kaithi Number Sign
+("f" ?𑂹)
+("F" #x110CD) ; Kaithi Number Sign Above
+("`f" ?𑂾)
+("`F" ?𑂿)
+("g" ?𑂏)
+("G" ?𑂐)
+("h" ?𑂯)
+("H" ?𑂂)
+("j" ?𑂔)
+("J" ?𑂕)
+("k" ?𑂍)
+("K" ?𑂎)
+("l" ?𑂪)
+("z" ?𑂖)
+("Z" ?𑂑)
+("x" ?𑂭)
+("X" ?𑂺)
+("c" ?𑂒)
+("C" ?𑂓)
+("`c" #x200C) ; ZWNJ
+("`C" #x200D) ; ZWJ
+("v" ?𑂫)
+("b" ?𑂥)
+("B" ?𑂦)
+("n" ?𑂢)
+("N" ?𑂝)
+("m" ?𑂧)
+("M" ?𑂁)
+("`m" ?𑂀)
+)
+
;;; indian.el ends here