summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorसमीर सिंह Sameer Singh <lumarzeli30@gmail.com>2022-05-09 04:22:57 +0530
committerEli Zaretskii <eliz@gnu.org>2022-05-09 21:24:18 +0300
commit57b69ff39c1ec7aa74f2a19bd4c4de9f67a7df84 (patch)
tree3abe7b1ae65026efe7758fb14c1f0e00ac0f9155
parent558286315c908a8be134bec0187c97ceac815b3e (diff)
downloademacs-57b69ff39c1ec7aa74f2a19bd4c4de9f67a7df84.tar.gz
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)
-rw-r--r--etc/HELLO1
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/international/fontset.el2
-rw-r--r--lisp/language/indian.el43
-rw-r--r--lisp/leim/quail/indian.el119
5 files changed, 170 insertions, 0 deletions
diff --git a/etc/HELLO b/etc/HELLO
index f5e2adae940..b64aacfbe5b 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 92a956c176d..5cdc9a4b3ee 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 2d417d632f8..7fa390a34be 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 922061c3b6a..4b6c4744f1c 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 f730a5ca0f1..b1e547a26ec 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