Subject: bug#55370: closed (Re: bug#55370: [PATCH] Add support for the Syloti Nagri script)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 15 May 2022 15:41:02 +0000

Your bug report

#55370: [PATCH] Add support for the Syloti Nagri 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].

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

Subject: Re: bug#55370: [PATCH] Add support for the Syloti Nagri script
From: Eli Zaretskii <[email-masked]>
To: समीर सिंह Sameer Singh<[email-masked]>
Cc: [email-masked]
Date: Sun, 15 May 2022 18:40:10 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: समीर सिंह Sameer Singh <[email-masked]>
> Date: Sun, 15 May 2022 20:55:17 +0530
> Cc: [email-masked]
> 
> Ah. Okay
> Then I think you can close the bug report.

Done.

Subject: [PATCH] Add support for the Syloti Nagri script
From: समीर सिंह Sameer Singh<[email-masked]>
To: [email-masked]
Date: Wed, 11 May 2022 20:31:28 +0530
List-Id: <debbugs-submit.debbugs.gnu.org>

This time I have added support for the Syloti Nagri script.
I also had to separate the consonant conjunct syllables and the non
consonant conjunct syllables composition rules this time around, because if
they were together, Emacs would hang whenever I put a cursor on a Syloti
Nagri word or tried to edit it.

Please review the patch.
From 12446f0abb2ee7fc8de11c2550cdc2bb3c78842a 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, 11 May 2022 20:18:23 +0530
Subject: [PATCH] Add support for the Syloti Nagri script

* lisp/language/indian.el ("Syloti Nagri"): New language environment.
Add composition rules for Syloti Nagri.  Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Syloti Nagri.
* lisp/leim/quail/indian.el ("syloti-nagri"): New input method.

* etc/HELLO: Add two Syloti Nagri greetings.
* etc/NEWS: Announce the new language environment and its
input method.
---
 etc/HELLO                     |  2 +
 etc/NEWS                      |  5 +++
 lisp/international/fontset.el |  2 +
 lisp/language/indian.el       | 35 +++++++++++++++
 lisp/leim/quail/indian.el     | 81 +++++++++++++++++++++++++++++++++++
 5 files changed, 125 insertions(+)

diff --git a/etc/HELLO b/etc/HELLO
index b14fa0e861..131456a4de 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -82,6 +82,7 @@ Slovak (slovenčina)	Dobrý deň
 Slovenian (slovenščina)	Pozdravljeni!
 Spanish (español)	¡Hola!
 Swedish (svenska)	Hej / Goddag / Hallå
+Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ)	ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ / ꠘꠝꠡ꠆ꠇꠣꠞ
 Tamil (தமிழ்)	வணக்கம்
 Telugu (తెలుగు)	నమస్కారం
 TaiViet (ꪁꪫꪱꪣ ꪼꪕ)	ꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ
diff --git a/etc/NEWS b/etc/NEWS
index 595e477e2f..68baac3224 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -778,6 +778,11 @@ 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 language environment "Syloti Nagri"
+This language environment supports the Syloti Nagri script for the Sylheti
+language, which is spoke in parts of Bangladesh, Assam and Tripura.  A new
+input method, 'syloti-nagri', 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 144c3761a0..2579b839dd 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -194,6 +194,7 @@ font-encoding-charset-alist
 	(kanbun #x319D)
 	(han #x5B57)
 	(yi #xA288)
+        (syloti-nagri #xA807 #xA823 #xA82C)
 	(javanese #xA980)
 	(cham #xAA00)
 	(tai-viet #xAA80)
@@ -748,6 +749,7 @@ setup-default-fontset
 		    symbol
 		    braille
 		    yi
+                    syloti-nagri
                     javanese
 		    tai-viet
 		    aegean-number
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index b399756bbe..e31d48efeb 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -180,6 +180,17 @@ 'devanagari
 in this language environment."))
  '("Indian"))
 
+(set-language-info-alist
+ "Syloti Nagri" '((charset unicode)
+                  (coding-system utf-8)
+                  (coding-priority utf-8)
+                  (input-method . "syloti-nagri")
+                  (sample-text . "Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ)        ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ ꠀꠟꠣꠁꠇꠥꠝ")
+                  (documentation . "\
+Sylheti language and its script Syloti Nagri is supported
+in this language environment."))
+ '("Indian"))
+
 
 ;; Replace mnemonic characters in REGEXP according to TABLE.  TABLE is
 ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING).
@@ -573,5 +584,29 @@ malayalam-composable-pattern
                                (concat independent-vowel nasal "?")
                                1 'font-shape-gstring))))
 
+;; Syloti Nagri composition rules
+(let ((consonant            "[\xA807-\xA80A\xA80C-\xA822]")
+      (independent-vowel    "[\xA800\xA801\xA803-\xA805]")
+      (vowel                "[\xA802\xA823-\xA827]")
+      (nasal                "[\xA80B]")
+      (virama               "[\xA806\xA82C]"))
+  (set-char-table-range composition-function-table
+                        '(#xA806 . #xA806)
+                        (list (vector
+                               ;; Consonant conjunct based syllables
+                               (concat consonant "\\(?:" virama consonant "\\)+"
+                                       vowel "?" nasal "?")
+                               1 'font-shape-gstring)
+                              (vector
+                               ;; Nasal vowels
+                               (concat independent-vowel nasal "?")
+                               1 'font-shape-gstring)))
+  (set-char-table-range composition-function-table
+                        '(#xA823 . #xA827)
+                        (list (vector
+                               ;; Non Consonant conjunct based syllables
+                               (concat consonant 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 6c58fdd40b..eb9d1183e5 100644
--- a/lisp/leim/quail/indian.el
+++ b/lisp/leim/quail/indian.el
@@ -1267,4 +1267,85 @@ "||"
 ("`m" ?𑖼)
 )
 
+
+(quail-define-package
+ "syloti-nagri" "Syloti Nagri" "ꠍꠤ" t "Syloti Nagri 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"  ?ꠄ)
+("r"  ?ꠞ)
+("R"  ?ꠠ)
+("t"  ?ꠔ)
+("T"  ?ꠕ)
+("y"  ?ꠂ)
+("u"  ?ꠥ)
+("U"  ?ꠃ)
+("i"  ?ꠤ)
+("I"  ?ꠁ)
+("o"  ?ꠧ)
+("O"  ?ꠅ)
+("p"  ?ꠙ)
+("P"  ?ꠚ)
+("a"  ?ꠣ)
+("A"  ?ꠀ)
+("s"  ?ꠡ)
+("d"  ?ꠖ)
+("D"  ?ꠗ)
+("f"  ?꠆)
+("F" ?꠬)
+("g"  ?ꠉ)
+("G"  ?ꠊ)
+("h"  ?ꠢ)
+("j"  ?ꠎ)
+("J"  ?ꠏ)
+("k"  ?ꠇ)
+("K"  ?ꠈ)
+("l"  ?ꠟ)
+("c"  ?ꠌ)
+("C"  ?ꠍ)
+("`c" #x200C)  ; ZWNJ
+("b"  ?ꠛ)
+("B"  ?ꠜ)
+("n"  ?ꠘ)
+("m"  ?ꠝ)
+("M"  ?ꠋ)
+)
+
 ;;; indian.el ends here
-- 
2.36.1