emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 987a212eb1: Add support for the Kaithi script


From: Eli Zaretskii
Subject: master 987a212eb1: Add support for the Kaithi script
Date: Sat, 7 May 2022 09:23:30 -0400 (EDT)

branch: master
commit 987a212eb17b32cabcf46640417768bcccb2be5e
Author: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Commit: Eli Zaretskii <eliz@gnu.org>

    Add support for the Kaithi script
    
    * 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                     |   2 +
 etc/NEWS                      |   6 +++
 lisp/international/fontset.el |   2 +
 lisp/language/indian.el       |  38 ++++++++++++++++
 lisp/leim/quail/indian.el     | 101 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 149 insertions(+)

diff --git a/etc/HELLO b/etc/HELLO
index dbbcc0493b..ac0cb823ea 100644
--- 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í!
diff --git a/etc/NEWS b/etc/NEWS
index de3f093864..671c30772e 100644
--- 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.
+
 
 * Changes in Specialized Modes and Packages in Emacs 29.1
 
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 883f08905e..66f5068cf7 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -232,6 +232,7 @@
        (elymaic #x10FE0)
        (old-uyghur #x10F70)
         (brahmi #x11013 #x11045 #x11052 #x11065)
+        (kaithi #x1108D #x110B0 #x110BD)
        (mahajani #x11150)
        (khojki #x11200)
        (khudawadi #x112B0)
@@ -772,6 +773,7 @@
                    elymaic
                     old-uyghur
                     brahmi
+                    kaithi
                    makasar
                     dives-akuru
                    cuneiform
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index c3d59b6f77..0031405182 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -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
diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el
index f2d5f9bad4..a52d44bc08 100644
--- a/lisp/leim/quail/indian.el
+++ b/lisp/leim/quail/indian.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]