From 8926b31ab0482b5c11d34d97fea14649cb104d43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=B8=E0=A4=AE=E0=A5=80=E0=A4=B0=20=E0=A4=B8=E0=A4=BF?= =?UTF-8?q?=E0=A4=82=E0=A4=B9=20Sameer=20Singh?= Date: Tue, 10 May 2022 03:54:14 +0530 Subject: [PATCH] Add support for the Siddham script * lisp/language/indian.el ("Siddham"): New language environment. Add composition rules for Siddham. Add sample text and input method. * lisp/international/fontset.el (script-representative-chars) (setup-default-fontset): Support Siddham. * lisp/leim/quail/indian.el ("siddham"): New input method. * etc/HELLO: Add a Siddham greeting. * etc/NEWS: Announce the new language environment and its input method. --- etc/HELLO | 2 + etc/NEWS | 6 ++ lisp/international/fontset.el | 3 +- lisp/language/indian.el | 30 ++++++++++ lisp/leim/quail/indian.el | 104 ++++++++++++++++++++++++++++++++++ 5 files changed, 144 insertions(+), 1 deletion(-) diff --git a/etc/HELLO b/etc/HELLO index b64aacfbe5..8f7f414d17 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -76,6 +76,7 @@ Oriya (ଓଡ଼ିଆ) ଶୁଣିବେ Polish (język polski) Dzień dobry! / Cześć! Russian (русский) Здра́вствуйте! Sharada (𑆯𑆳𑆫𑆢𑆳) 𑆤𑆩𑆱𑇀𑆑𑆳𑆫 +Siddham (𑖭𑖰𑖟𑖿𑖠𑖽) 𑖡𑖦𑖫𑖿𑖝𑖸 Sinhala (සිංහල) ආයුබෝවන් Slovak (slovenčina) Dobrý deň Slovenian (slovenščina) Pozdravljeni! diff --git a/etc/NEWS b/etc/NEWS index 5cdc9a4b3e..c7fc1bbd2a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -754,6 +754,12 @@ 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 language environment "Siddham". +This language environment supports the Siddham script for the Sanskrit +language. Nowadays it is mostly used by the Buddhist monks in Japan for +religious writings. A new input method, 'siddham', 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 7fa390a34b..144c3761a0 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -240,7 +240,7 @@ font-encoding-charset-alist (grantha #x11305) (newa #x11400) (tirhuta #x11481 #x1148F #x114D0) - (siddham #x11580) + (siddham #x1158E #x115AF #x115D4) (modi #x11600) (takri #x11680) (dogra #x11800) @@ -777,6 +777,7 @@ setup-default-fontset kaithi sharada tirhuta + siddham makasar dives-akuru cuneiform diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 1e10c2a61a..b399756bbe 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el @@ -169,6 +169,17 @@ 'devanagari language environment.")) '("Indian")) +(set-language-info-alist + "Siddham" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "siddham") + (sample-text . "Siddham (𑖭𑖰𑖟𑖿𑖠𑖽) 𑖡𑖦𑖭𑖿𑖝𑖸") + (documentation . "\ +Sanskrit language and one of its script Siddham is supported +in this language environment.")) + '("Indian")) + ;; Replace mnemonic characters in REGEXP according to TABLE. TABLE is ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING). @@ -543,5 +554,24 @@ malayalam-composable-pattern (concat fricatives "?" consonant vowel "?") 0 'font-shape-gstring)))) +;; Siddham composition rules +(let ((consonant "[\x1158E-\x115AE]") + (nukta "\x115C0") + (independent-vowel "[\x11580-\x1158D\x115D8-\x115DB]") + (vowel "[\x115AF-\x115BB\x115DC\x115DD]") + (nasal "[\x115BC\x115BD]") + (virama "\x115BF")) + (set-char-table-range composition-function-table + '(#x115AF . #x115C0) + (list (vector + ;; Consonant based syllables + (concat consonant nukta "?\\(?:" virama consonant nukta "?\\)*\\(?:" + virama "\\|" vowel "*" nukta "?" nasal "?\\)") + 1 'font-shape-gstring) + (vector + ;; Nasal vowels + (concat independent-vowel nasal "?") + 1 'font-shape-gstring)))) + (provide 'indian) ;;; indian.el ends here diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el index b1e547a26e..3bc03558c3 100644 --- a/lisp/leim/quail/indian.el +++ b/lisp/leim/quail/indian.el @@ -1163,4 +1163,108 @@ "||" ("`M" ?𑇏) ) +(quail-define-package + "siddham" "Sharada" "𑖭𑖰" t "Siddham 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" ?𑗊) +("`!" ?𑗔) +("`2" ?𑗋) +("`@" ?𑗕) +("`3" ?𑗌) +("`#" ?𑗖) +("`4" ?𑗍) +("`$" ?𑗗) +("`5" ?𑗎) +("`%" ?𑗅) +("`6" ?𑗏) +("`^" ?𑗆) +("`7" ?𑗐) +("`&" ?𑗇) +("`8" ?𑗑) +("`*" ?𑗈) +("`9" ?𑗒) +("`\(" ?𑗉) +("`0" ?𑗓) +("`\)" ?𑗄) +("`\\" ?𑗂) +("`|" ?𑗃) +("`" ?𑖘) +("q" ?𑖘) +("Q" ?𑖙) +("`q" ?𑗘) +("`Q" ?𑗙) +("w" ?𑖚) +("W" ?𑖛) +("`w" ?𑗚) +("`W" ?𑗛) +("e" ?𑖸) +("E" ?𑖹) +("`e" ?𑖊) +("`E" ?𑖋) +("r" ?𑖨) +("R" ?𑖴) +("`r" ?𑖆) +("t" ?𑖝) +("T" ?𑖞) +("`t" ?𑗜) +("`T" ?𑗝) +("y" ?𑖧) +("u" ?𑖲) +("U" ?𑖳) +("`u" ?𑖄) +("`U" ?𑖅) +("i" ?𑖰) +("I" ?𑖱) +("`i" ?𑖂) +("`I" ?𑖃) +("o" ?𑖺) +("O" ?𑖻) +("`o" ?𑖌) +("`O" ?𑖍) +("p" ?𑖢) +("P" ?𑖣) +("a" ?𑖯) +("A" ?𑖁) +("`a" ?𑖀) +("s" ?𑖭) +("S" ?𑖫) +("d" ?𑖟) +("D" ?𑖠) +("`d" ?𑗁) +("f" ?𑖿) +("F" ?𑖵) +("`f" ?𑖇) +("g" ?𑖐) +("G" ?𑖑) +("h" ?𑖮) +("H" ?𑖾) +("j" ?𑖕) +("J" ?𑖖) +("k" ?𑖎) +("K" ?𑖏) +("l" ?𑖩) +("L" ?𑖈) +("`l" ?𑖉) +("z" ?𑖗) +("Z" ?𑖒) +("x" ?𑖬) +("X" ?𑗀) +("c" ?𑖓) +("C" ?𑖔) +("`c" #x200C) ; ZWNJ +("v" ?𑖪) +("b" ?𑖤) +("B" ?𑖥) +("n" ?𑖡) +("N" ?𑖜) +("m" ?𑖦) +("M" ?𑖽) +("`m" ?𑖼) +) + ;;; indian.el ends here -- 2.36.1