Subject: bug#55782: closed (Re: bug#55782: [PATCH] Add support for the Grantha script)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 04 Jun 2022 13:46:01 +0000

Your bug report

#55782: [PATCH] Add support for the Grantha script

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
55782: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55782
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#55782: [PATCH] Add support for the Grantha script
From: Eli Zaretskii <[email-masked]>
To: समीर सिंह Sameer Singh<[email-masked]>
Cc: [email-masked]
Date: Sat, 04 Jun 2022 16:45:11 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: समीर सिंह Sameer Singh <[email-masked]>
> Date: Sat, 4 Jun 2022 17:26:50 +0530
> Cc: [email-masked]
> 
> >I understand the two greetings you added are in two different
> >languages, is that right?
> 
> No they are the same, both are Sanskrit. Adding Namaste to most of the Indian languages was very boring,
> so this time I wrote Namaste and Namaskaarah.
> 
> I could not find any dictionary for Manipravalam so was unable to get a greeting for that (though it is a
> basically a mixture of Sanskrit and Old Malayalam, so it does not make much difference)

Ok, thanks.  So I'm closing the bug.

Subject: [PATCH] Add support for the Grantha script
From: समीर सिंह Sameer Singh<[email-masked]>
To: [email-masked]
Date: Fri, 3 Jun 2022 18:21:08 +0530
List-Id: <debbugs-submit.debbugs.gnu.org>

This time the beautiful Grantha script is added to Emacs.

Please review the patch.
Thank You.
From 7d2d5bf3236482edac7b48931ee267e1018074d9 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?= <[email-masked]>
Date: Wed, 1 Jun 2022 22:29:24 +0530
Subject: [PATCH] Add support for the Grantha script

* 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.
Add tamil supplement codepoints to (tamil).
* lisp/leim/quail/indian.el ("grantha"): New input method.

* etc/HELLO: Add a Grantha greeting.
* etc/NEWS: Announce the new language environment.
---
 etc/HELLO                     |   1 +
 etc/NEWS                      |   1 +
 lisp/international/fontset.el |   5 +-
 lisp/language/indian.el       |  38 +++++++++++
 lisp/leim/quail/indian.el     | 115 ++++++++++++++++++++++++++++++++++
 5 files changed, 158 insertions(+), 2 deletions(-)

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 54bc6d80e1..cc378d929c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -850,6 +850,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..834e1321af 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -167,7 +167,7 @@ font-encoding-charset-alist
 	(gurmukhi #xA15)
 	(gujarati #xA95)
 	(oriya #xB15)
-	(tamil #xB95)
+	(tamil #xB95 #x11FC0 #x11FC6)
 	(telugu #xC15)
 	(kannada #xC95)
 	(malayalam #xD15)
@@ -250,7 +250,7 @@ font-encoding-charset-alist
         (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 @@ setup-default-fontset
                     brahmi
                     kaithi
                     sharada
+                    grantha
                     tirhuta
                     siddham
                     modi
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 4dfad75275..7ec83210d6 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -233,6 +233,17 @@ 'devanagari
 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 which uses 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 @@ malayalam-composable-pattern
                                        "?" 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 @@ "||"
 ("`?" ?᥅)
 )
 
+(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
-- 
2.36.1