]> git.eshelyaron.com Git - emacs.git/commitdiff
Add support for the Kaithi script
authorसमीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Sat, 7 May 2022 12:25:25 +0000 (17:55 +0530)
committerEli Zaretskii <eliz@gnu.org>
Sat, 7 May 2022 13:22:20 +0000 (16:22 +0300)
* lisp/language/indian.el ("Kaithi"): New language environment.
Add composition rules for Kaithi.  Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Kaithi.
* lisp/leim/quail/indian.el ("kaithi"): New input method.

* etc/HELLO: Add a Kaithi greeting.
* etc/NEWS: Announce the new language environment and its
input method.

etc/HELLO
etc/NEWS
lisp/international/fontset.el
lisp/language/indian.el
lisp/leim/quail/indian.el

index dbbcc0493bf3682c489ee2ecb74ad4548a1a3813..ac0cb823eae3d9065f311205c5a9eb40aec56b05 100644 (file)
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -59,6 +59,8 @@ Hindi (हिंदी)       नमस्ते / नमस्कार ।
 Inuktitut (ᐃᓄᒃᑎᑐᑦ) ᐊᐃ
 Italian (italiano)     Ciao / Buon giorno
 Javanese (ꦧꦱꦗꦮꦶ)     console.log("ꦲꦭꦺꦴ");
+
+Kaithi (𑂍𑂶𑂟𑂲)      𑂩𑂰𑂧𑂩𑂰𑂧
 Kannada (ಕನ್ನಡ)      ನಮಸ್ಕಾರ
 Khmer (ភាសាខ្មែរ)    ជំរាបសួរ
 Lakota (Lakȟotiyapi)  Taŋyáŋ yahí!
index de3f093864f6313ad6c2fd42dd4f045ef5c395e1..671c30772eb0e76dc7b3e489c5a54df50385b9f1 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -731,6 +731,12 @@ This language environment supports Brahmi, which is a historical
 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
 
index 883f08905e9786ba3ff739e8f7c8882a931abb27..66f5068cf76a633bed0dcfc1c727e37544e9d7d7 100644 (file)
        (elymaic #x10FE0)
        (old-uyghur #x10F70)
         (brahmi #x11013 #x11045 #x11052 #x11065)
+        (kaithi #x1108D #x110B0 #x110BD)
        (mahajani #x11150)
        (khojki #x11200)
        (khudawadi #x112B0)
                    elymaic
                     old-uyghur
                     brahmi
+                    kaithi
                    makasar
                     dives-akuru
                    cuneiform
index c3d59b6f77018582c781f27fcd7dd7f680e4b081..0031405182c48a9b39afc6a1310e586e19426f37 100644 (file)
@@ -136,6 +136,17 @@ South Indian language Malayalam is supported in this language environment."))
 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).
@@ -421,6 +432,33 @@ The ancient Brahmi script is supported in this language environment."))
                                (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
index f2d5f9bad4a00c7ebcf148c794ce5189b4d45beb..a52d44bc083675e472496939f2ea6999cea98cff 100644 (file)
@@ -835,5 +835,106 @@ Full key sequences are listed below:")
  ("`/" ?𑁿)
  )
 
+(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