emacs-diffs
[Top][All Lists]
Advanced

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

master 65dc15b722: Add support for the Grantha script (bug#55782)


From: Eli Zaretskii
Subject: master 65dc15b722: Add support for the Grantha script (bug#55782)
Date: Sat, 4 Jun 2022 04:31:36 -0400 (EDT)

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

    Add support for the Grantha script (bug#55782)
    
    * lisp/language/indian.el ("Grantha"): New language environment.
    Add composition rules for Grantha. Add sample text and input method.
    * lisp/international/fontset.el (script-representative-chars)
    (setup-default-fontset): Support Grantha.
    * lisp/leim/quail/indian.el ("grantha"): New input method.
    
    * etc/HELLO: Add two Grantha greetings.
    * etc/NEWS: Announce the new language environment.
---
 etc/HELLO                     |   1 +
 etc/NEWS                      |   1 +
 lisp/international/fontset.el |   3 +-
 lisp/language/indian.el       |  38 ++++++++++++++
 lisp/leim/quail/indian.el     | 115 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 157 insertions(+), 1 deletion(-)

diff --git a/etc/HELLO b/etc/HELLO
index 4148183949..6694501a7d 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -56,6 +56,7 @@ Finnish (suomi)       Hei / Hyvää päivää
 French (français)      Bonjour / Salut
 Georgian (ქართული)     გამარჯობა
 German (Deutsch)       Guten Tag / Grüß Gott
+Grantha (𑌗𑍍𑌰𑌨𑍍𑌥)       𑌨𑌮𑌸𑍍𑌤𑍇 / 𑌨𑌮𑌸𑍍𑌕𑌾𑌰𑌃
 Greek (ελληνικά)       Γειά σας
 Greek, ancient (ἑλληνική)      Οὖλέ τε καὶ μέγα χαῖρε
 Gujarati (ગુજરાતી)     નમસ્તે
diff --git a/etc/NEWS b/etc/NEWS
index 777c8eb341..850854edfa 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -852,6 +852,7 @@ corresponding language environments are:
 **** Makasar script and language environment
 **** Lontara script and language environment
 **** Hanifi Rohingya script and language environment
+**** Grantha script and language environment
 
 ---
 *** The "Oriya" language environment was renamed to "Odia".
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 2c54c86ab7..74be7edc64 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -250,7 +250,7 @@
         (sharada #x11191 #x111B3 #x111CD)
        (khojki #x11200)
        (khudawadi #x112B0)
-       (grantha #x11305)
+       (grantha #x11315 #x1133E #x11374)
        (newa #x11400)
        (tirhuta #x11481 #x1148F #x114D0)
        (siddham #x1158E #x115AF #x115D4)
@@ -801,6 +801,7 @@
                     brahmi
                     kaithi
                     sharada
+                    grantha
                     tirhuta
                     siddham
                     modi
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 4dfad75275..9329b43fea 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -233,6 +233,17 @@ Limbu language and its script are supported in this
 language environment."))
  '("Indian"))
 
+(set-language-info-alist
+ "Grantha" '((charset unicode)
+             (coding-system utf-8)
+             (coding-priority utf-8)
+             (input-method . "grantha")
+             (sample-text . "Grantha (𑌗𑍍𑌰𑌨𑍍𑌥)  𑌨𑌮𑌸𑍍𑌤𑍇 / 𑌨𑌮𑌸𑍍𑌕𑌾𑌰𑌃")
+             (documentation . "\
+Languages such as Sanskrit and Manipravalam, when they use the
+Grantha 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).
 
@@ -696,5 +707,32 @@ language environment."))
                                        "?" vowel "?" other-signs "?")
                                1 'font-shape-gstring))))
 
+;; Grantha composition rules
+(let ((consonant            "[\x11315-\x11339]")
+      (nukta                "\x1133C")
+      (independent-vowel    "[\x11305-\x11314\x11360\x11361]")
+      (vowel                "[\x1133E-\x1134C\x11357\x11362\x11363]")
+      (nasal                "[\x11300-\x11302]")
+      (bindu                "\x1133B")
+      (visarga              "\x11303")
+      (virama               "\x1134D")
+      (avagraha             "\x1133D")
+      (modifier-above       "[\x11366-\x11374]"))
+  (set-char-table-range composition-function-table
+                        '(#x1133B . #x1134D)
+                        (list (vector
+                               ;; Consonant based syllables
+                               (concat consonant nukta "?" "\\(?:" virama 
consonant nukta
+                                       "?\\)*\\(?:" virama "\\|" vowel "*" 
nukta "?" nasal
+                                       "?" bindu "?" visarga "?" 
modifier-above "?"
+                                       avagraha "?\\)")
+                               1 'font-shape-gstring)
+                              (vector
+                               ;; Vowels based syllables
+                               (concat independent-vowel nukta "?" virama "?" 
vowel "?"
+                                       nasal "?" bindu "?" visarga "?" 
modifier-above
+                                       "?" avagraha "?")
+                               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 031c30aabb..6a3582e83d 100644
--- a/lisp/leim/quail/indian.el
+++ b/lisp/leim/quail/indian.el
@@ -1656,4 +1656,119 @@ Full key sequences are listed below:")
 ("`?" ?᥅)
 )
 
+(quail-define-package
+ "grantha" "Grantha" "𑌗𑍍𑌰" t "Grantha 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" ?𑌋)
+ ("t"  ?𑌤)
+ ("T"  ?𑌥)
+ ("`t" ?𑍗)
+ ("y"  ?𑌯)
+ ("u"  ?𑍁)
+ ("U"  ?𑍂)
+ ("`u" ?𑌉)
+ ("`U" ?𑌊)
+ ("i"  ?𑌿)
+ ("I"  ?𑍀)
+ ("`i" ?𑌇)
+ ("`I" ?𑌈)
+ ("o"  ?𑍋)
+ ("O"  ?𑍌)
+ ("`o" ?𑌓)
+ ("`O" ?𑌔)
+ ("p"  ?𑌪)
+ ("P"  ?𑌫)
+ ("`p" ?𑍴)
+ ("a"  ?𑌾)
+ ("A"  ?𑌆)
+ ("`a" ?𑌅)
+ ("`A" ?𑍰)
+ ("s"  ?𑌸)
+ ("S"  ?𑌶)
+ ("d"  ?𑌦)
+ ("D"  ?𑌧)
+ ("f"  ?𑍍)
+ ("F"  ?𑍄)
+ ("`f" ?𑍠)
+ ("g"  ?𑌗)
+ ("G" ?𑌘)
+ ("h"  ?𑌹)
+ ("H"  ?𑌃)
+ ("j"  ?𑌜)
+ ("J"  ?𑌝)
+ ("k"  ?𑌕)
+ ("K"  ?𑌖)
+ ("`k" ?𑍱)
+ ("l"  ?𑌲)
+ ("L"  ?𑌳)
+ ("`l" ?𑍢)
+ ("`L" ?𑌌)
+ ("z"  ?𑌞)
+ ("Z"  ?𑌙)
+ ("`z" ?𑍣)
+ ("`Z" ?𑍡)
+ ("x"  ?𑌷)
+ ("X"  ?𑌼)
+ ("`x" ?𑌻)
+ ("c"  ?𑌚)
+ ("C"  ?𑌛)
+ ("`c" #x200C)  ; ZWNJ
+ ("v"  ?𑌵)
+ ("V"  ?𑌽)
+ ("`v" ?𑍳)
+ ("b"  ?𑌬)
+ ("B"  ?𑌭)
+ ("n"  ?𑌨)
+ ("N"  ?𑌣)
+ ("`n" ?𑍲)
+ ("m"  ?𑌮)
+ ("M"  ?𑌂)
+ ("`m" ?𑌁)
+ ("`M" ?𑌀))
+
 ;;; indian.el ends here



reply via email to

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