unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#55370: [PATCH] Add support for the Syloti Nagri script
@ 2022-05-11 15:01 समीर सिंह Sameer Singh
  2022-05-12  7:10 ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-11 15:01 UTC (permalink / raw)
  To: 55370


[-- Attachment #1.1: Type: text/plain, Size: 335 bytes --]

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.

[-- Attachment #1.2: Type: text/html, Size: 410 bytes --]

[-- Attachment #2: 0001-Add-support-for-the-Syloti-Nagri-script.patch --]
[-- Type: text/x-patch, Size: 6589 bytes --]

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?= <lumarzeli30@gmail.com>
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


^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2022-05-15 15:40 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-11 15:01 bug#55370: [PATCH] Add support for the Syloti Nagri script समीर सिंह Sameer Singh
2022-05-12  7:10 ` Eli Zaretskii
2022-05-12 13:42   ` समीर सिंह Sameer Singh
2022-05-12 14:01     ` Eli Zaretskii
2022-05-12 15:06       ` समीर सिंह Sameer Singh
2022-05-12 16:29         ` Eli Zaretskii
2022-05-12 16:50           ` समीर सिंह Sameer Singh
2022-05-12 17:04             ` Eli Zaretskii
2022-05-12 17:10               ` समीर सिंह Sameer Singh
2022-05-12 17:25                 ` Eli Zaretskii
2022-05-12 17:28                   ` समीर सिंह Sameer Singh
2022-05-14 23:47                     ` समीर सिंह Sameer Singh
2022-05-15  6:16                       ` Eli Zaretskii
2022-05-15 13:40                         ` समीर सिंह Sameer Singh
2022-05-15 14:23                           ` Eli Zaretskii
2022-05-15 14:41                             ` समीर सिंह Sameer Singh
2022-05-15 15:19                               ` Eli Zaretskii
2022-05-15 15:25                                 ` समीर सिंह Sameer Singh
2022-05-15 15:40                                   ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).