emacs-diffs
[Top][All Lists]
Advanced

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

master 57b69ff39c: Add support for the Sharada script


From: Eli Zaretskii
Subject: master 57b69ff39c: Add support for the Sharada script
Date: Mon, 9 May 2022 14:24:54 -0400 (EDT)

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

    Add support for the Sharada script
    
    * lisp/language/indian.el ("Sharada"): New language environment.
    Add composition rules for Sharada.  Add sample text and input
    method.
    * lisp/international/fontset.el (script-representative-chars)
    (setup-default-fontset): Support Sharada.
    * lisp/leim/quail/indian.el ("sharada"): New input method.
    
    * etc/HELLO: Add a Sharada greeting.
    * etc/NEWS: Announce the new language environment and its
    input method.  (Bug#55328)
---
 etc/HELLO                     |   1 +
 etc/NEWS                      |   5 ++
 lisp/international/fontset.el |   2 +
 lisp/language/indian.el       |  43 +++++++++++++++
 lisp/leim/quail/indian.el     | 119 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 170 insertions(+)

diff --git a/etc/HELLO b/etc/HELLO
index f5e2adae94..b64aacfbe5 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -75,6 +75,7 @@ Norwegian (norsk)     Hei / God dag
 Oriya (ଓଡ଼ିଆ)   ଶୁଣିବେ
 Polish  (język polski) Dzień dobry! / Cześć!
 Russian (русский)      Здра́вствуйте!
+Sharada (𑆯𑆳𑆫𑆢𑆳)        𑆤𑆩𑆱𑇀𑆑𑆳𑆫
 Sinhala (සිංහල)        ආයුබෝවන්
 Slovak (slovenčina)    Dobrý deň
 Slovenian (slovenščina)        Pozdravljeni!
diff --git a/etc/NEWS b/etc/NEWS
index 92a956c176..5cdc9a4b3e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -749,6 +749,11 @@ This language environment supports Tirhuta or 
Mithilaakshar, which is
 used to write the Maithili language.  A new input method, 'tirhuta',
 is provided to type text in this script.
 
+*** New language environment "Sharada".
+This language environment supports the Sharada script.  Named after the
+goddess of learning, this script is used to write the Kashmiri language.
+A new input method, 'sharada', is provided to type text in this script.
+
 ---
 *** New Greek translation of the Emacs tutorial.
 Type 'C-u C-h t' to select it in case your language setup does not do
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 2d417d632f..7fa390a34b 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -234,6 +234,7 @@
         (brahmi #x11013 #x11045 #x11052 #x11065)
         (kaithi #x1108D #x110B0 #x110BD)
        (mahajani #x11150)
+        (sharada #x11191 #x111B3 #x111CD)
        (khojki #x11200)
        (khudawadi #x112B0)
        (grantha #x11305)
@@ -774,6 +775,7 @@
                     old-uyghur
                     brahmi
                     kaithi
+                    sharada
                     tirhuta
                    makasar
                     dives-akuru
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 922061c3b6..4b6c4744f1 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -158,6 +158,17 @@ Maithili language and its script Tirhuta is supported in 
this
 language environment."))
  '("Indian"))
 
+(set-language-info-alist
+ "Sharada" '((charset unicode)
+             (coding-system utf-8)
+             (coding-priority utf-8)
+             (input-method . "sharada")
+             (sample-text . "Sharada (𑆯𑆳𑆫𑆢𑆳)        𑆤𑆩𑆱𑇀𑆑𑆳𑆫")
+             (documentation . "\
+Kashmiri language and its script Sharada is supported in this
+language environment."))
+ '("Indian"))
+
 
 ;; Replace mnemonic characters in REGEXP according to TABLE.  TABLE is
 ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING).
@@ -461,17 +472,20 @@ language environment."))
   (set-char-table-range composition-function-table
                         '(#x110B0 . #x110BA)
                         (list (vector
+                               ;; Consonant based syllables
                                (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
+                               ;; Number sign
                                (concat number-sign numerals)
                                0 'font-shape-gstring)))
   (set-char-table-range composition-function-table
                         '(#x110CD . #x110CD)
                         (list (vector
+                               ;; Number sign above
                                (concat number-sign-above numerals)
                                0 'font-shape-gstring))))
 
@@ -486,8 +500,37 @@ language environment."))
   (set-char-table-range composition-function-table
                         '(#x114B0 . #x114C3)
                         (list (vector
+                               ;; Consonant based syllables
                                (concat consonant nukta "?\\(?:" virama 
consonant nukta "?\\)*\\(?:"
                                        virama "\\|" vowel "*" nukta "?" 
anusvara-candrabindu "?\\)")
                                1 'font-shape-gstring))))
 
+;; Sharada composition rules
+(let ((consonant              "[\x11191-\x111B2]")
+      (nukta                  "\x111CA")
+      (vowel                  "[\x111B3-\x111BF\x111CE]")
+      (vowel-modifier         "\x111CB")
+      (extra-short-vowel-mark "\x111CC")
+      (anusvara-candrabindu   "[\x11181\x11180\x111CF]")
+      (virama                 "\x111C0")
+      (fricatives             "[\x111C2\x111C3]")
+      (sandhi-mark            "\x111C9")
+      (misc                   
"[^\x11180-\x111C0\x111C2\x111C3\x111C9-\x111CC\x111CE-\x111CF]"))
+  (set-char-table-range composition-function-table
+                        '(#x111B3 . #x111CF)
+                        (list (vector
+                               ;; Consonant based syllables
+                               (concat consonant nukta "?" vowel-modifier 
"?\\(?:" virama
+                                       consonant nukta "?" vowel-modifier 
"?\\)*\\(?:" virama
+                                       "\\|" vowel "*" nukta "?" 
anusvara-candrabindu "?"
+                                       extra-short-vowel-mark "?" 
vowel-modifier "?" sandhi-mark
+                                       "?+" misc "?\\)")
+                               1 'font-shape-gstring)))
+  (set-char-table-range composition-function-table
+                        '(#x111C2 . #x111C3)
+                        (list (vector
+                               ;; Fricatives with Consonants
+                               (concat fricatives "?" consonant vowel "?")
+                               0 'font-shape-gstring))))
+
 ;;; indian.el ends here
diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el
index f730a5ca0f..b1e547a26e 100644
--- a/lisp/leim/quail/indian.el
+++ b/lisp/leim/quail/indian.el
@@ -1043,5 +1043,124 @@ Full key sequences are listed below:")
 ("`m" ?𑒿)
 )
 
+(quail-define-package
+ "sharada" "Sharada" "𑆯𑆳" t "Sharada 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"  ?𑇙)
+("`9" ?9)
+("0"  ?𑇐)
+("`0" ?0)
+("`\)" ?𑇇)
+("`\\" ?𑇅)
+("`|" ?𑇆)
+("`"  ?𑆛)
+("q"  ?𑆛)
+("Q"  ?𑆜)
+("`q" ?𑇈)
+("`Q" ?𑇉)
+("w"  ?𑆝)
+("W"  ?𑆞)
+("`w" ?𑇋)
+("`W" ?𑇍)
+("e"  ?𑆼)
+("E"  ?𑆽)
+("`e" ?𑆍)
+("`E" ?𑆎)
+("r"  ?𑆫)
+("R"  ?𑆸)
+("`r" ?𑆉)
+("`R" ?𑇎)
+("t"  ?𑆠)
+("T"  ?𑆡)
+("y"  ?𑆪)
+("u"  ?𑆶)
+("U"  ?𑆷)
+("`u" ?𑆇)
+("`U" ?𑆈)
+("i"  ?𑆴)
+("I"  ?𑆵)
+("`i" ?𑆅)
+("`I" ?𑆆)
+("o"  ?𑆾)
+("O"  ?𑆿)
+("`o" ?𑆏)
+("`O" ?𑆐)
+("p"  ?𑆥)
+("P"  ?𑆦)
+("`p" ?𑇃)
+("a"  ?𑆳)
+("A"  ?𑆄)
+("`a" ?𑆃)
+("s"  ?𑆱)
+("S"  ?𑆯)
+("d"  ?𑆢)
+("D"  ?𑆣)
+("`d" ?𑇚)
+("`D" ?𑇛)
+("f"  ?𑇀)
+("F" ?𑆹)
+("`f" ?𑆊)
+("`F" ?𑇌)
+("g"  ?𑆓)
+("G"  ?𑆔)
+("`g" ?𑇜)
+("`G" ?𑇝)
+("h"  ?𑆲)
+("H"  ?𑆂)
+("`h" ?𑇞)
+("`H" ?𑇟)
+("j"  ?𑆘)
+("J"  ?𑆙)
+("`j" ?᳘)
+("`J" ?᳕)
+("k"  ?𑆑)
+("K"  ?𑆒)
+("`k" ?𑇂)
+("l"  ?𑆬)
+("L" ?𑆭)
+("`l" ?𑆺)
+("`L" ?𑆋)
+("z"  ?𑆚)
+("Z"  ?𑆕)
+("`z" ?𑆻)
+("`Z" ?𑆌)
+("x"  ?𑆰)
+("X"  ?𑇊)
+("c"  ?𑆖)
+("C"  ?𑆗)
+("`c" #x200C)  ; ZWNJ
+("v"  ?𑆮)
+("b"  ?𑆧)
+("B"  ?𑆨)
+("n"  ?𑆤)
+("N"  ?𑆟)
+("`n" ?𑇄)
+("`N" ?𑇁)
+("m"  ?𑆩)
+("M"  ?𑆁)
+("`m" ?𑆀)
+("`M" ?𑇏)
+)
 
 ;;; indian.el ends here



reply via email to

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