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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  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
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-12  7:10 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh
>  <lumarzeli30@gmail.com>
> Date: Wed, 11 May 2022 20:31:28 +0530
> 
> 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.

Thanks.

There's something strange in the composition rules:

> +;; 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)))

This set of ruled is triggered by U+A806, and should match a regexp
starting from one character before U+A806.  However, the second rule,
i.e.

> +                               ;; Nasal vowels
> +                               (concat independent-vowel nasal "?")
> +                               1 'font-shape-gstring)))

has 'nasal' ("[\xA80B]") as its second character, and 'nasal' will
never match U+A806.  So this rule will never match, right?

> +  (set-char-table-range composition-function-table
> +                        '(#xA823 . #xA827)
> +                        (list (vector
> +                               ;; Non Consonant conjunct based syllables
> +                               (concat consonant vowel "?" nasal "?")
> +                               1 'font-shape-gstring))))

Similarly here: this rule will never match if 'vowel' isn't present,
because the second character of the matching sequence _must_ be a
vowel, since that is what triggers the composition rule in the first
place.  Am I missing something?

I see similar issues with the composition rules we installed for other
old Indian scripts; could you please review them with the above
comments in mind and see which ones need to be amended?





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12  7:10 ` Eli Zaretskii
@ 2022-05-12 13:42   ` समीर सिंह Sameer Singh
  2022-05-12 14:01     ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-12 13:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370

[-- Attachment #1: Type: text/plain, Size: 4165 bytes --]

Thank you for reviewing the patch.

I have noticed that when there is no nasal sign in the range of the
set-char-table-range function, it is rendered correctly when alone with a
consonant or an independent vowel.
But when it is added to the range, it is not displayed correctly, until and
unless a composition rule is added for it.

Sometimes for scripts like Syloti Nagri, Sharada and Kaithi these signs are
not in a contiguous range with virama and vowel signs (they are far away)
So when I add them to the range, Emacs starts to hang. (Maybe because the
range is too big, or there are unnecessary symbols like consonants there)
This is why I had decided to not include them, because they were still
rendering fine.

So should I leave them as it is, or make another set-char-table-range that
includes only them?

Similarly here: this rule will never match if 'vowel' isn't present,
> because the second character of the matching sequence _must_ be a
> vowel, since that is what triggers the composition rule in the first
> place.  Am I missing something?
>

Here too since consonant vowel nasal was not rendering I added the rule,
maybe I should remove the "?" after vowel.
(consonant nasal was rendering fine)

On Thu, May 12, 2022 at 12:40 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: समीर सिंह Sameer Singh
> >  <lumarzeli30@gmail.com>
> > Date: Wed, 11 May 2022 20:31:28 +0530
> >
> > 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.
>
> Thanks.
>
> There's something strange in the composition rules:
>
> > +;; 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)))
>
> This set of ruled is triggered by U+A806, and should match a regexp
> starting from one character before U+A806.  However, the second rule,
> i.e.
>
> > +                               ;; Nasal vowels
> > +                               (concat independent-vowel nasal "?")
> > +                               1 'font-shape-gstring)))
>
> has 'nasal' ("[\xA80B]") as its second character, and 'nasal' will
> never match U+A806.  So this rule will never match, right?
>
> > +  (set-char-table-range composition-function-table
> > +                        '(#xA823 . #xA827)
> > +                        (list (vector
> > +                               ;; Non Consonant conjunct based syllables
> > +                               (concat consonant vowel "?" nasal "?")
> > +                               1 'font-shape-gstring))))
>
> Similarly here: this rule will never match if 'vowel' isn't present,
> because the second character of the matching sequence _must_ be a
> vowel, since that is what triggers the composition rule in the first
> place.  Am I missing something?
>
> I see similar issues with the composition rules we installed for other
> old Indian scripts; could you please review them with the above
> comments in mind and see which ones need to be amended?
>

[-- Attachment #2: Type: text/html, Size: 5576 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 13:42   ` समीर सिंह Sameer Singh
@ 2022-05-12 14:01     ` Eli Zaretskii
  2022-05-12 15:06       ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-12 14:01 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Thu, 12 May 2022 19:12:09 +0530
> Cc: 55370@debbugs.gnu.org
> 
> I have noticed that when there is no nasal sign in the range of the set-char-table-range function, it is rendered
> correctly when alone with a consonant or an independent vowel.
> But when it is added to the range, it is not displayed correctly, until and unless a composition rule is added
> for it.

Example of text that doesn't render correctly?

> Sometimes for scripts like Syloti Nagri, Sharada and Kaithi these signs are not in a contiguous range with
> virama and vowel signs (they are far away)
> So when I add them to the range, Emacs starts to hang. (Maybe because the range is too big, or there are
> unnecessary symbols like consonants there)
> This is why I had decided to not include them, because they were still rendering fine.
> 
> So should I leave them as it is, or make another set-char-table-range that includes only them?

I cannot say, because I don't think I understand the issue.  In
particular, Emacs should never hang due to this stuff.

So my suggestion is to debug this and figure out why it hangs.  Maybe
begin by posting the composition rules that you tried originally, and
let's take it from there.

>  Similarly here: this rule will never match if 'vowel' isn't present,
>  because the second character of the matching sequence _must_ be a
>  vowel, since that is what triggers the composition rule in the first
>  place.  Am I missing something?
> 
> Here too since consonant vowel nasal was not rendering I added the rule, maybe I should remove the "?"
> after vowel.
> (consonant nasal was rendering fine) 

I don't think I understand this part, either.  Please elaborate.





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 14:01     ` Eli Zaretskii
@ 2022-05-12 15:06       ` समीर सिंह Sameer Singh
  2022-05-12 16:29         ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-12 15:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370

[-- Attachment #1: Type: text/plain, Size: 5545 bytes --]

>
> Example of text that doesn't render correctly?
>

For example in tirhuta, when I do this:

;; Tirhuta composition rules
(let ((consonant            "[\x1148F-\x114AF]")
      (nukta                "\x114C3")
      (independent-vowel    "[\x11481-\x1148E]")
      (vowel                "[\x114B0-\x114BE]")
      (nasal                "[\x114BF\x114C0]")
      (virama               "\x114C2"))
  (set-char-table-range composition-function-table
                        '(#x114B0 . #x114BE)
                        (list (vector
                               ;; Consonant based syllables
                               (concat consonant nukta "?\\(?:" virama
consonant nukta "?\\)*\\(?:"
                                       virama "\\|" vowel "*" nukta "?"
nasal "?\\)")
                               1 'font-shape-gstring))))

Notice here, the nasal sign is not included in the range.
And then I type: 𑒅𑓀 𑒆𑒿
It is rendered correctly

But when I do:

;; Tirhuta composition rules
(let ((consonant            "[\x1148F-\x114AF]")
      (nukta                "\x114C3")
      (independent-vowel    "[\x11481-\x1148E]")
      (vowel                "[\x114B0-\x114BE]")
      (nasal                "[\x114BF\x114C0]")
      (virama               "\x114C2"))
  (set-char-table-range composition-function-table
                        '(#x114B0 . #x114C0)
                        (list (vector
                               ;; Consonant based syllables
                               (concat consonant nukta "?\\(?:" virama
consonant nukta "?\\)*\\(?:"
                                       virama "\\|" vowel "*" nukta "?"
nasal "?\\)")
                               1 'font-shape-gstring))))
The range now has the nasal signs.
And then type the above characters: 𑒅𑓀 𑒆𑒿
They are not rendered correctly

But when I include their composition rules:

;; Tirhuta composition rules
(let ((consonant            "[\x1148F-\x114AF]")
      (nukta                "\x114C3")
      (independent-vowel    "[\x11481-\x1148E]")
      (vowel                "[\x114B0-\x114BE]")
      (nasal                "[\x114BF\x114C0]")
      (virama               "\x114C2"))
  (set-char-table-range composition-function-table
                        '(#x114B0 . #x114C0)
                        (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))))

They are now once more rendered correctly.

So my suggestion is to debug this and figure out why it hangs.  Maybe
> begin by posting the composition rules that you tried originally, and
> let's take it from there.
>

I think I found the problem, this was due to the independent vowel and
nasal rule, I will fix it later.

I don't think I understand this part, either.  Please elaborate.
>

You had said that since the range only contains vowel signs, (consonant +
nasal) rule does not apply, only (consonant + vowel + nasal) will.
I then said that (consonant + nasal) renders fine without a rule, but
(consonant + vowel + nasal) does not, therefore I had to add a rule for
that.

On Thu, May 12, 2022 at 7:31 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> > Date: Thu, 12 May 2022 19:12:09 +0530
> > Cc: 55370@debbugs.gnu.org
> >
> > I have noticed that when there is no nasal sign in the range of the
> set-char-table-range function, it is rendered
> > correctly when alone with a consonant or an independent vowel.
> > But when it is added to the range, it is not displayed correctly, until
> and unless a composition rule is added
> > for it.
>
> Example of text that doesn't render correctly?
>
> > Sometimes for scripts like Syloti Nagri, Sharada and Kaithi these signs
> are not in a contiguous range with
> > virama and vowel signs (they are far away)
> > So when I add them to the range, Emacs starts to hang. (Maybe because
> the range is too big, or there are
> > unnecessary symbols like consonants there)
> > This is why I had decided to not include them, because they were still
> rendering fine.
> >
> > So should I leave them as it is, or make another set-char-table-range
> that includes only them?
>
> I cannot say, because I don't think I understand the issue.  In
> particular, Emacs should never hang due to this stuff.
>
> So my suggestion is to debug this and figure out why it hangs.  Maybe
> begin by posting the composition rules that you tried originally, and
> let's take it from there.
>
> >  Similarly here: this rule will never match if 'vowel' isn't present,
> >  because the second character of the matching sequence _must_ be a
> >  vowel, since that is what triggers the composition rule in the first
> >  place.  Am I missing something?
> >
> > Here too since consonant vowel nasal was not rendering I added the rule,
> maybe I should remove the "?"
> > after vowel.
> > (consonant nasal was rendering fine)
>
> I don't think I understand this part, either.  Please elaborate.
>

[-- Attachment #2: Type: text/html, Size: 7864 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 15:06       ` समीर सिंह Sameer Singh
@ 2022-05-12 16:29         ` Eli Zaretskii
  2022-05-12 16:50           ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-12 16:29 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Thu, 12 May 2022 20:36:49 +0530
> Cc: 55370@debbugs.gnu.org
> 
> For example in tirhuta, when I do this:
> 
> ;; Tirhuta composition rules
> (let ((consonant            "[\x1148F-\x114AF]")
>       (nukta                "\x114C3")
>       (independent-vowel    "[\x11481-\x1148E]")
>       (vowel                "[\x114B0-\x114BE]")
>       (nasal                "[\x114BF\x114C0]")
>       (virama               "\x114C2"))
>   (set-char-table-range composition-function-table
>                         '(#x114B0 . #x114BE)
>                         (list (vector
>                                ;; Consonant based syllables
>                                (concat consonant nukta "?\\(?:" virama
> consonant nukta "?\\)*\\(?:"
>                                        virama "\\|" vowel "*" nukta "?"
> nasal "?\\)")
>                                1 'font-shape-gstring))))
> 
> Notice here, the nasal sign is not included in the range.
> And then I type: 𑒅𑓀 𑒆𑒿
> It is rendered correctly

It is rendered correctly because your rule isn't used.

The rule

                        '(#x114B0 . #x114BE)
                        (list (vector
                               ;; Consonant based syllables
                               (concat consonant nukta "?\\(?:"
			               virama consonant nukta "?\\)* \\(?:"
                                       virama "\\|" vowel "*" nukta "?"
                                       nasal "?\\)")
                               1 'font-shape-gstring))))

says this:

  . find a character C between #x114B0 and #x114BE
  . see if the characters starting one character before C match the
    above regexp
  . if they match, compose them

But your text doesn't include any characters in the range
[\x114B0-\x114BE], so the above rule will never match anything, and
will not cause any composition.

You see the characters composed because the second character in each
par, #x114C0 and #x114BF, is a combining accent, and for those we have
a catch-all rule in composite.el:

  (when unicode-category-table
    (let ((elt `([,(purecopy "\\c.\\c^+") 1 compose-gstring-for-graphic]
		 [nil 0 compose-gstring-for-graphic])))
      (map-char-table
       #'(lambda (key val)
	   (if (memq val '(Mn Mc Me))
	       (set-char-table-range composition-function-table key elt)))
       unicode-category-table))


> But when I do:
> 
> ;; Tirhuta composition rules
> (let ((consonant            "[\x1148F-\x114AF]")
>       (nukta                "\x114C3")
>       (independent-vowel    "[\x11481-\x1148E]")
>       (vowel                "[\x114B0-\x114BE]")
>       (nasal                "[\x114BF\x114C0]")
>       (virama               "\x114C2"))
>   (set-char-table-range composition-function-table
>                         '(#x114B0 . #x114C0)
>                         (list (vector
>                                ;; Consonant based syllables
>                                (concat consonant nukta "?\\(?:" virama
> consonant nukta "?\\)*\\(?:"
>                                        virama "\\|" vowel "*" nukta "?"
> nasal "?\\)")
>                                1 'font-shape-gstring))))
> The range now has the nasal signs.
> And then type the above characters: 𑒅𑓀 𑒆𑒿
> They are not rendered correctly

In this case, the characters that trigger examination of the
composition rules, #x114C0 and #x114BF, _are_ in the range
'(#x114B0 . #x114C0).  However, the preceding characters, #x11484 and
#x11486, are independent-vowel's, and there are no independent-vowel
in the regexp.  So again, the rules will never match.  Except that now
you also replaced the default rule we have for the combining accents,
so what worked before no longer does.

> But when I include their composition rules:
> 
> ;; Tirhuta composition rules
> (let ((consonant            "[\x1148F-\x114AF]")
>       (nukta                "\x114C3")
>       (independent-vowel    "[\x11481-\x1148E]")
>       (vowel                "[\x114B0-\x114BE]")
>       (nasal                "[\x114BF\x114C0]")
>       (virama               "\x114C2"))
>   (set-char-table-range composition-function-table
>                         '(#x114B0 . #x114C0)
>                         (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))))
> 
> They are now once more rendered correctly.

As expected, see above: now you do have a regexp that can match, it's
this one:

    (concat independent-vowel nasal "?")

I hope you now understand how to fix the rules.  If not, please ask
more questions and show more examples.





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 16:29         ` Eli Zaretskii
@ 2022-05-12 16:50           ` समीर सिंह Sameer Singh
  2022-05-12 17:04             ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-12 16:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370

[-- Attachment #1: Type: text/plain, Size: 7143 bytes --]

Ah! I think I understand now.
Since Emacs had pre defined rules for these characters, they were rendering
fine without my input, but when I had included them in range,
a new rule had to be defined for them, because the previous ones were
overwritten.

For example, this is correct now isn't it?

;; 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
                        '(#xA802 . #xA82C)
                        (list (vector
                               ;; Consonant conjunct based syllables
                               (concat consonant "\\(?:" virama consonant
"\\)+"
                                       vowel "?" nasal "?")
                               1 'font-shape-gstring)
                              (vector
                               ;; Vowels based syllables
                               (concat independent-vowel consonant "?"
virama "?"
                                       vowel "?" nasal "?")
                               1 'font-shape-gstring))))

Here I have included the nasal sign, virama and vowel sign in the range.
I have also added a rule for independent vowels with consonants, virama,
vowel signs and nasal signs so that emacs does not hang, when they appear
together.

On Thu, May 12, 2022 at 9:59 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> > Date: Thu, 12 May 2022 20:36:49 +0530
> > Cc: 55370@debbugs.gnu.org
> >
> > For example in tirhuta, when I do this:
> >
> > ;; Tirhuta composition rules
> > (let ((consonant            "[\x1148F-\x114AF]")
> >       (nukta                "\x114C3")
> >       (independent-vowel    "[\x11481-\x1148E]")
> >       (vowel                "[\x114B0-\x114BE]")
> >       (nasal                "[\x114BF\x114C0]")
> >       (virama               "\x114C2"))
> >   (set-char-table-range composition-function-table
> >                         '(#x114B0 . #x114BE)
> >                         (list (vector
> >                                ;; Consonant based syllables
> >                                (concat consonant nukta "?\\(?:" virama
> > consonant nukta "?\\)*\\(?:"
> >                                        virama "\\|" vowel "*" nukta "?"
> > nasal "?\\)")
> >                                1 'font-shape-gstring))))
> >
> > Notice here, the nasal sign is not included in the range.
> > And then I type: 𑒅𑓀 𑒆𑒿
> > It is rendered correctly
>
> It is rendered correctly because your rule isn't used.
>
> The rule
>
>                         '(#x114B0 . #x114BE)
>                         (list (vector
>                                ;; Consonant based syllables
>                                (concat consonant nukta "?\\(?:"
>                                        virama consonant nukta "?\\)* \\(?:"
>                                        virama "\\|" vowel "*" nukta "?"
>                                        nasal "?\\)")
>                                1 'font-shape-gstring))))
>
> says this:
>
>   . find a character C between #x114B0 and #x114BE
>   . see if the characters starting one character before C match the
>     above regexp
>   . if they match, compose them
>
> But your text doesn't include any characters in the range
> [\x114B0-\x114BE], so the above rule will never match anything, and
> will not cause any composition.
>
> You see the characters composed because the second character in each
> par, #x114C0 and #x114BF, is a combining accent, and for those we have
> a catch-all rule in composite.el:
>
>   (when unicode-category-table
>     (let ((elt `([,(purecopy "\\c.\\c^+") 1 compose-gstring-for-graphic]
>                  [nil 0 compose-gstring-for-graphic])))
>       (map-char-table
>        #'(lambda (key val)
>            (if (memq val '(Mn Mc Me))
>                (set-char-table-range composition-function-table key elt)))
>        unicode-category-table))
>
>
> > But when I do:
> >
> > ;; Tirhuta composition rules
> > (let ((consonant            "[\x1148F-\x114AF]")
> >       (nukta                "\x114C3")
> >       (independent-vowel    "[\x11481-\x1148E]")
> >       (vowel                "[\x114B0-\x114BE]")
> >       (nasal                "[\x114BF\x114C0]")
> >       (virama               "\x114C2"))
> >   (set-char-table-range composition-function-table
> >                         '(#x114B0 . #x114C0)
> >                         (list (vector
> >                                ;; Consonant based syllables
> >                                (concat consonant nukta "?\\(?:" virama
> > consonant nukta "?\\)*\\(?:"
> >                                        virama "\\|" vowel "*" nukta "?"
> > nasal "?\\)")
> >                                1 'font-shape-gstring))))
> > The range now has the nasal signs.
> > And then type the above characters: 𑒅𑓀 𑒆𑒿
> > They are not rendered correctly
>
> In this case, the characters that trigger examination of the
> composition rules, #x114C0 and #x114BF, _are_ in the range
> '(#x114B0 . #x114C0).  However, the preceding characters, #x11484 and
> #x11486, are independent-vowel's, and there are no independent-vowel
> in the regexp.  So again, the rules will never match.  Except that now
> you also replaced the default rule we have for the combining accents,
> so what worked before no longer does.
>
> > But when I include their composition rules:
> >
> > ;; Tirhuta composition rules
> > (let ((consonant            "[\x1148F-\x114AF]")
> >       (nukta                "\x114C3")
> >       (independent-vowel    "[\x11481-\x1148E]")
> >       (vowel                "[\x114B0-\x114BE]")
> >       (nasal                "[\x114BF\x114C0]")
> >       (virama               "\x114C2"))
> >   (set-char-table-range composition-function-table
> >                         '(#x114B0 . #x114C0)
> >                         (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))))
> >
> > They are now once more rendered correctly.
>
> As expected, see above: now you do have a regexp that can match, it's
> this one:
>
>     (concat independent-vowel nasal "?")
>
> I hope you now understand how to fix the rules.  If not, please ask
> more questions and show more examples.
>

[-- Attachment #2: Type: text/html, Size: 9740 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 16:50           ` समीर सिंह Sameer Singh
@ 2022-05-12 17:04             ` Eli Zaretskii
  2022-05-12 17:10               ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-12 17:04 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Thu, 12 May 2022 22:20:15 +0530
> Cc: 55370@debbugs.gnu.org
> 
> For example, this is correct now isn't it?

I don't know if it's correct, but I can say that now the regexps are
consistent with the character-range of the rule.





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 17:04             ` Eli Zaretskii
@ 2022-05-12 17:10               ` समीर सिंह Sameer Singh
  2022-05-12 17:25                 ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-12 17:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370

[-- Attachment #1: Type: text/plain, Size: 1369 bytes --]

Yes it was not correct, this seems more appropriate.

;; 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
                        '(#xA802 . #xA82C)
                        (list (vector
                               ;; Consonant conjunct based syllables
                               (concat independent-vowel "?" consonant
"\\(?:" virama consonant "\\)+"
                                       vowel "?" nasal "?")
                               1 'font-shape-gstring))))

btw this range does not cause emacs to slow down, right?
also should I send separate patches for the syloti nagri, and the fix for
previous scripts, or combine them into one?

On Thu, May 12, 2022 at 10:34 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> > Date: Thu, 12 May 2022 22:20:15 +0530
> > Cc: 55370@debbugs.gnu.org
> >
> > For example, this is correct now isn't it?
>
> I don't know if it's correct, but I can say that now the regexps are
> consistent with the character-range of the rule.
>

[-- Attachment #2: Type: text/html, Size: 2126 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 17:10               ` समीर सिंह Sameer Singh
@ 2022-05-12 17:25                 ` Eli Zaretskii
  2022-05-12 17:28                   ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-12 17:25 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Thu, 12 May 2022 22:40:02 +0530
> Cc: 55370@debbugs.gnu.org
> 
> Yes it was not correct, this seems more appropriate.
> 
> ;; 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
>                         '(#xA802 . #xA82C)
>                         (list (vector
>                                ;; Consonant conjunct based syllables
>                                (concat independent-vowel "?" consonant "\\(?:" virama consonant "\\)+"
>                                        vowel "?" nasal "?")
>                                1 'font-shape-gstring))))
> 
> btw this range does not cause emacs to slow down, right?

It might, because the range is very large, and so any character in the
range #xA802..#xA82C will cause Emacs to try to match the regexp.

So if there's a way of having the rules on fewer characters, that
would be better, even if there will be more rules.

> also should I send separate patches for the syloti nagri, and the fix for previous scripts, or combine them into
> one?

You can combine them into a single patch, just make sure the log
message mentions all the changes.

Thanks.





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 17:25                 ` Eli Zaretskii
@ 2022-05-12 17:28                   ` समीर सिंह Sameer Singh
  2022-05-14 23:47                     ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-12 17:28 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370

[-- Attachment #1: Type: text/plain, Size: 1698 bytes --]

Ok I will do that, thanks!

On Thu, May 12, 2022 at 10:55 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> > Date: Thu, 12 May 2022 22:40:02 +0530
> > Cc: 55370@debbugs.gnu.org
> >
> > Yes it was not correct, this seems more appropriate.
> >
> > ;; 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
> >                         '(#xA802 . #xA82C)
> >                         (list (vector
> >                                ;; Consonant conjunct based syllables
> >                                (concat independent-vowel "?" consonant
> "\\(?:" virama consonant "\\)+"
> >                                        vowel "?" nasal "?")
> >                                1 'font-shape-gstring))))
> >
> > btw this range does not cause emacs to slow down, right?
>
> It might, because the range is very large, and so any character in the
> range #xA802..#xA82C will cause Emacs to try to match the regexp.
>
> So if there's a way of having the rules on fewer characters, that
> would be better, even if there will be more rules.
>
> > also should I send separate patches for the syloti nagri, and the fix
> for previous scripts, or combine them into
> > one?
>
> You can combine them into a single patch, just make sure the log
> message mentions all the changes.
>
> Thanks.
>

[-- Attachment #2: Type: text/html, Size: 2488 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-12 17:28                   ` समीर सिंह Sameer Singh
@ 2022-05-14 23:47                     ` समीर सिंह Sameer Singh
  2022-05-15  6:16                       ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-14 23:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370


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

I have updated the patch.

1. Wherever the nasal signs are not in range, I have not included them in a
composition rule if they appear alone with a character and left them up to
composite.el.
For eg in Kaithi

- ;; Nasal vowels
- (concat independent-vowel nasal "?")
+ ;; Vowel based syllables
+ (concat independent-vowel nukta "?" virama "?" vowel "?")

2. I have also written composition rules for independent vowels with nukta,
virama, vowel signs etc, so that Emacs does not hang when they are typed
together.

Please review the patch.

On Thu, May 12, 2022 at 10:58 PM समीर सिंह Sameer Singh <
lumarzeli30@gmail.com> wrote:

> Ok I will do that, thanks!
>
> On Thu, May 12, 2022 at 10:55 PM Eli Zaretskii <eliz@gnu.org> wrote:
>
>> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
>> > Date: Thu, 12 May 2022 22:40:02 +0530
>> > Cc: 55370@debbugs.gnu.org
>> >
>> > Yes it was not correct, this seems more appropriate.
>> >
>> > ;; 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
>> >                         '(#xA802 . #xA82C)
>> >                         (list (vector
>> >                                ;; Consonant conjunct based syllables
>> >                                (concat independent-vowel "?" consonant
>> "\\(?:" virama consonant "\\)+"
>> >                                        vowel "?" nasal "?")
>> >                                1 'font-shape-gstring))))
>> >
>> > btw this range does not cause emacs to slow down, right?
>>
>> It might, because the range is very large, and so any character in the
>> range #xA802..#xA82C will cause Emacs to try to match the regexp.
>>
>> So if there's a way of having the rules on fewer characters, that
>> would be better, even if there will be more rules.
>>
>> > also should I send separate patches for the syloti nagri, and the fix
>> for previous scripts, or combine them into
>> > one?
>>
>> You can combine them into a single patch, just make sure the log
>> message mentions all the changes.
>>
>> Thanks.
>>
>

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

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

From 231a113b721e92a62ce171b98c3461c255429862 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: Sun, 15 May 2022 05:09:15 +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.
Improve composition rules for Kaithi, Tirhuta, Sharada and Siddham.
* 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                     |  1 +
 etc/NEWS                      |  5 +++
 lisp/international/fontset.el |  2 +
 lisp/language/indian.el       | 79 ++++++++++++++++++++++++++--------
 lisp/leim/quail/indian.el     | 81 +++++++++++++++++++++++++++++++++++
 5 files changed, 151 insertions(+), 17 deletions(-)

diff --git a/etc/HELLO b/etc/HELLO
index b14fa0e861..16a38b59d3 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 d93a79ed36..2962a50d99 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -791,6 +791,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..559239b491 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).
@@ -485,12 +496,13 @@ malayalam-composable-pattern
                         '(#x110B0 . #x110BA)
                         (list (vector
                                ;; Consonant based syllables
-                               (concat consonant nukta "?\\(?:" virama zwj "?" consonant nukta "?\\)*\\(?:"
-                                       virama zwj "?\\|" vowel "*" nukta "?" nasal "?\\)")
+                               (concat consonant nukta "?\\(?:" virama zwj "?" consonant
+                                       nukta "?\\)*\\(?:" virama zwj "?\\|" vowel "*" nukta
+                                       "?" nasal "?\\)")
                                1 'font-shape-gstring)
                               (vector
-                               ;; Nasal vowels
-                               (concat independent-vowel nasal "?")
+                               ;; Vowel based syllables
+                               (concat independent-vowel nukta "?" virama "?" vowel "?")
                                1 'font-shape-gstring)))
   (set-char-table-range composition-function-table
                         '(#x110BD . #x110BD)
@@ -516,12 +528,13 @@ malayalam-composable-pattern
                         '(#x114B0 . #x114C3)
                         (list (vector
                                ;; Consonant based syllables
-                               (concat consonant nukta "?\\(?:" virama consonant nukta "?\\)*\\(?:"
-                                       virama "\\|" vowel "*" nukta "?" nasal "?\\)")
+                               (concat consonant nukta "?\\(?:" virama consonant nukta
+                                       "?\\)*\\(?:" virama "\\|" vowel "*" nukta "?"
+                                       nasal "?\\)")
                                1 'font-shape-gstring)
                               (vector
-                               ;; Nasal vowels
-                               (concat independent-vowel nasal "?")
+                               ;; Vowel based syllables
+                               (concat independent-vowel nukta "?" virama "?" vowel "?" nasal "?")
                                1 'font-shape-gstring))))
 
 ;; Sharada composition rules
@@ -535,19 +548,21 @@ malayalam-composable-pattern
       (virama                 "\x111C0")
       (fricatives             "[\x111C2\x111C3]")
       (sandhi-mark            "\x111C9")
-      (misc                   "[^\x11180-\x111C0\x111C2\x111C3\x111C9-\x111CC\x111CE-\x111CF]"))
+      (misc                   "[\x111C4-\x111C8\x111CD]"))
   (set-char-table-range composition-function-table
-                        '(#x111B3 . #x111CF)
+                        '(#x111B3 . #x111CE)
                         (list (vector
                                ;; Consonant based syllables
                                (concat consonant nukta "?" vowel-modifier "?\\(?:" virama
                                        consonant nukta "?" vowel-modifier "?\\)*\\(?:" virama
                                        "\\|" vowel "*" nukta "?" nasal "?" extra-short-vowel-mark
-                                       "?" vowel-modifier "?" sandhi-mark "?+" misc "?\\)")
+                                        "?" vowel-modifier "?" sandhi-mark "?+" misc "?\\)")
                                1 'font-shape-gstring)
                               (vector
-                               ;; Nasal vowels
-                               (concat independent-vowel nasal "?")
+                               ;; Vowel based syllables
+                               (concat independent-vowel nukta "?" vowel-modifier "?" virama "?"
+                                       vowel "?" extra-short-vowel-mark "?" sandhi-mark "?"
+                                       fricatives "?" misc "?")
                                1 'font-shape-gstring)
                               (vector
                                ;; Fricatives with Consonants
@@ -560,17 +575,47 @@ malayalam-composable-pattern
       (independent-vowel    "[\x11580-\x1158D\x115D8-\x115DB]")
       (vowel                "[\x115AF-\x115BB\x115DC\x115DD]")
       (nasal                "[\x115BC\x115BD]")
+      (visarga              "\x115BE")
       (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 "?\\)")
+                               (concat consonant nukta "?" "\\(?:" virama consonant nukta
+                                       "?\\)*\\(?:" virama "\\|" vowel "*" nukta "?" nasal
+                                       "?" visarga "?\\)")
                                1 'font-shape-gstring)
                               (vector
-                               ;; Nasal vowels
-                               (concat independent-vowel nasal "?")
+                               ;; Vowels based syllables
+                               (concat independent-vowel nukta "?" virama "?" vowel "?"
+                                       nasal "?" visarga "?")
+                               1 'font-shape-gstring))))
+
+;; Syloti Nagri composition rules
+(let ((consonant            "[\xA807-\xA80A\xA80C-\xA822]")
+      (vowel                "[\xA802\xA823-\xA827]")
+      (nasal                "[\xA80B]")
+      (virama               "\xA806")
+      (alternate-virama     "\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)))
+  (set-char-table-range composition-function-table
+                        '(#xA823 . #xA827)
+                        (list (vector
+                               ;; Non Consonant conjunct based syllables
+                               (concat consonant vowel nasal "?")
+                               1 'font-shape-gstring)))
+    (set-char-table-range composition-function-table
+                        '(#xA82C . #xA82C)
+                        (list (vector
+                               ;; Consonant with the alternate virama
+                               (concat consonant "\\(?:" alternate-virama consonant "\\)+"
+                                       vowel "?" nasal "?")
                                1 'font-shape-gstring))))
 
 (provide 'indian)
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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-14 23:47                     ` समीर सिंह Sameer Singh
@ 2022-05-15  6:16                       ` Eli Zaretskii
  2022-05-15 13:40                         ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-15  6:16 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Sun, 15 May 2022 05:17:07 +0530
> Cc: 55370@debbugs.gnu.org
> 
> I have updated the patch.
> 
> 1. Wherever the nasal signs are not in range, I have not included them in a composition rule if they appear
> alone with a character and left them up to composite.el.
> For eg in Kaithi
> 
> - ;; Nasal vowels
> - (concat independent-vowel nasal "?")
> + ;; Vowel based syllables
> + (concat independent-vowel nukta "?" virama "?" vowel "?")
> 
> 2. I have also written composition rules for independent vowels with nukta, virama, vowel signs etc, so that
> Emacs does not hang when they are typed together.
> 
> Please review the patch.

Thanks.  I installed this, but please review the composition rules,
because in the Syloti Nagri greeting some characters whose Unicode
general-category property is Mn, which means they are combining
characters, don't compose.  That doesn't feel right to me, but I don't
read this script.  Just go through the greeting with C-f and type
"C-u C-x =" at every cursor position: you will see some of the
characters are shown as "combining", but they don't compose with
surrounding characters.

I didn't look at the other scripts you added, but maybe they, too,
have similar problems.





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-15  6:16                       ` Eli Zaretskii
@ 2022-05-15 13:40                         ` समीर सिंह Sameer Singh
  2022-05-15 14:23                           ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-15 13:40 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370


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

I am sorry but I do not see the problem on my end.
Here they look composed as intended.
I have attached a screenshot, please check whether it matches your output.

On Sun, May 15, 2022 at 11:46 AM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> > Date: Sun, 15 May 2022 05:17:07 +0530
> > Cc: 55370@debbugs.gnu.org
> >
> > I have updated the patch.
> >
> > 1. Wherever the nasal signs are not in range, I have not included them
> in a composition rule if they appear
> > alone with a character and left them up to composite.el.
> > For eg in Kaithi
> >
> > - ;; Nasal vowels
> > - (concat independent-vowel nasal "?")
> > + ;; Vowel based syllables
> > + (concat independent-vowel nukta "?" virama "?" vowel "?")
> >
> > 2. I have also written composition rules for independent vowels with
> nukta, virama, vowel signs etc, so that
> > Emacs does not hang when they are typed together.
> >
> > Please review the patch.
>
> Thanks.  I installed this, but please review the composition rules,
> because in the Syloti Nagri greeting some characters whose Unicode
> general-category property is Mn, which means they are combining
> characters, don't compose.  That doesn't feel right to me, but I don't
> read this script.  Just go through the greeting with C-f and type
> "C-u C-x =" at every cursor position: you will see some of the
> characters are shown as "combining", but they don't compose with
> surrounding characters.
>
> I didn't look at the other scripts you added, but maybe they, too,
> have similar problems.
>

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

[-- Attachment #2: syloti-nagri.png --]
[-- Type: image/png, Size: 8396 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-15 13:40                         ` समीर सिंह Sameer Singh
@ 2022-05-15 14:23                           ` Eli Zaretskii
  2022-05-15 14:41                             ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-15 14:23 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Sun, 15 May 2022 19:10:50 +0530
> Cc: 55370@debbugs.gnu.org
> 
> I am sorry but I do not see the problem on my end.
> Here they look composed as intended.
> I have attached a screenshot, please check whether it matches your output.

I mean characters at buffer positions 2685 and 2692.





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-15 14:23                           ` Eli Zaretskii
@ 2022-05-15 14:41                             ` समीर सिंह Sameer Singh
  2022-05-15 15:19                               ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-15 14:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370


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

They look alright to me.
1. ꠝꠥ (\xA81D\xA825) (buffer positions 2684 and 2685)
C-u C-x = shows
position: 2684 of 3952 (68%), column: 48
            character: ꠝ (displayed as ꠝ) (codepoint 43037, #o124035,
#xa81d)
              charset: unicode (Unicode (ISO10646))
code point in charset: 0xA81D
               script: syloti-nagri
               syntax: w which means: word
             category: .:Base, L:Strong L2R
             to input: type "C-x 8 RET a81d" or "C-x 8 RET SYLOTI NAGRI
LETTER MO"
          buffer code: #xEA #xA0 #x9D
            file code: #xEA #xA0 #x9D (encoded by coding system utf-8-unix)
              display: composed to form "ꠝꠥ" (see below)

Composed with the following character(s) "ꠥ" using this font:
  ftcrhb:-GOOG-Noto Sans Syloti
Nagri-regular-normal-normal-*-40-*-*-*-*-0-iso10646-1
by these glyphs:
  [0 1 43037 46 26 -1 27 28 1 nil]
  [0 1 43045 54 0 -16 1 1 11 nil]
with these character(s):
  ꠥ (#xa825) SYLOTI NAGRI VOWEL SIGN U

Character code properties: customize what to show
  name: SYLOTI NAGRI LETTER MO
  general-category: Lo (Letter, Other)
  decomposition: (43037) ('ꠝ')

2. ꠇꠥ (\xA807\xA825) (buffer positions 2691 and 2692)
C-u C-x = shows
position: 2691 of 3952 (68%), column: 54
            character: ꠇ (displayed as ꠇ) (codepoint 43015, #o124007,
#xa807)
              charset: unicode (Unicode (ISO10646))
code point in charset: 0xA807
               script: syloti-nagri
               syntax: w which means: word
             category: .:Base, L:Strong L2R
             to input: type "C-x 8 RET a807" or "C-x 8 RET SYLOTI NAGRI
LETTER KO"
          buffer code: #xEA #xA0 #x87
            file code: #xEA #xA0 #x87 (encoded by coding system utf-8-unix)
              display: composed to form "ꠇꠥ" (see below)

Composed with the following character(s) "ꠥ" using this font:
  ftcrhb:-GOOG-Noto Sans Syloti
Nagri-regular-normal-normal-*-40-*-*-*-*-0-iso10646-1
by these glyphs:
  [0 1 43015 24 36 -1 37 28 1 nil]
  [0 1 43045 54 0 -16 1 1 11 nil]
with these character(s):
  ꠥ (#xa825) SYLOTI NAGRI VOWEL SIGN U

These outputs seem to show that they are composed properly.

Do they appear the same as the attached screenshots in your end?

On Sun, May 15, 2022 at 7:53 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> > Date: Sun, 15 May 2022 19:10:50 +0530
> > Cc: 55370@debbugs.gnu.org
> >
> > I am sorry but I do not see the problem on my end.
> > Here they look composed as intended.
> > I have attached a screenshot, please check whether it matches your
> output.
>
> I mean characters at buffer positions 2685 and 2692.
>

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

[-- Attachment #2: 2684-2685.png --]
[-- Type: image/png, Size: 1266 bytes --]

[-- Attachment #3: 2691-2692.png --]
[-- Type: image/png, Size: 1179 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-15 14:41                             ` समीर सिंह Sameer Singh
@ 2022-05-15 15:19                               ` Eli Zaretskii
  2022-05-15 15:25                                 ` समीर सिंह Sameer Singh
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-15 15:19 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Sun, 15 May 2022 20:11:28 +0530
> Cc: 55370@debbugs.gnu.org
> 
> They look alright to me.
> 1. ꠝꠥ (\xA81D\xA825) (buffer positions 2684 and 2685)
> C-u C-x = shows
> position: 2684 of 3952 (68%), column: 48
>             character: ꠝ (displayed as ꠝ) (codepoint 43037, #o124035, #xa81d)
>               charset: unicode (Unicode (ISO10646))
> code point in charset: 0xA81D
>                script: syloti-nagri
>                syntax: w which means: word
>              category: .:Base, L:Strong L2R
>              to input: type "C-x 8 RET a81d" or "C-x 8 RET SYLOTI NAGRI LETTER MO"
>           buffer code: #xEA #xA0 #x9D
>             file code: #xEA #xA0 #x9D (encoded by coding system utf-8-unix)
>               display: composed to form "ꠝꠥ" (see below)
> 
> Composed with the following character(s) "ꠥ" using this font:
>   ftcrhb:-GOOG-Noto Sans Syloti Nagri-regular-normal-normal-*-40-*-*-*-*-0-iso10646-1
> by these glyphs:
>   [0 1 43037 46 26 -1 27 28 1 nil]
>   [0 1 43045 54 0 -16 1 1 11 nil]
> with these character(s):
>   ꠥ (#xa825) SYLOTI NAGRI VOWEL SIGN U

It was because of the font I had installed, which I guess didn't
support some ligatures.

Thanks.





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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-15 15:19                               ` Eli Zaretskii
@ 2022-05-15 15:25                                 ` समीर सिंह Sameer Singh
  2022-05-15 15:40                                   ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: समीर सिंह Sameer Singh @ 2022-05-15 15:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55370

[-- Attachment #1: Type: text/plain, Size: 1528 bytes --]

Ah. Okay
Then I think you can close the bug report.

रवि, 15 मई 2022, 8:49 pm को Eli Zaretskii <eliz@gnu.org> ने लिखा:

> > From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> > Date: Sun, 15 May 2022 20:11:28 +0530
> > Cc: 55370@debbugs.gnu.org
> >
> > They look alright to me.
> > 1. ꠝꠥ (\xA81D\xA825) (buffer positions 2684 and 2685)
> > C-u C-x = shows
> > position: 2684 of 3952 (68%), column: 48
> >             character: ꠝ (displayed as ꠝ) (codepoint 43037, #o124035,
> #xa81d)
> >               charset: unicode (Unicode (ISO10646))
> > code point in charset: 0xA81D
> >                script: syloti-nagri
> >                syntax: w which means: word
> >              category: .:Base, L:Strong L2R
> >              to input: type "C-x 8 RET a81d" or "C-x 8 RET SYLOTI NAGRI
> LETTER MO"
> >           buffer code: #xEA #xA0 #x9D
> >             file code: #xEA #xA0 #x9D (encoded by coding system
> utf-8-unix)
> >               display: composed to form "ꠝꠥ" (see below)
> >
> > Composed with the following character(s) "ꠥ" using this font:
> >   ftcrhb:-GOOG-Noto Sans Syloti
> Nagri-regular-normal-normal-*-40-*-*-*-*-0-iso10646-1
> > by these glyphs:
> >   [0 1 43037 46 26 -1 27 28 1 nil]
> >   [0 1 43045 54 0 -16 1 1 11 nil]
> > with these character(s):
> >   ꠥ (#xa825) SYLOTI NAGRI VOWEL SIGN U
>
> It was because of the font I had installed, which I guess didn't
> support some ligatures.
>
> Thanks.
>

[-- Attachment #2: Type: text/html, Size: 2203 bytes --]

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

* bug#55370: [PATCH] Add support for the Syloti Nagri script
  2022-05-15 15:25                                 ` समीर सिंह Sameer Singh
@ 2022-05-15 15:40                                   ` Eli Zaretskii
  0 siblings, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2022-05-15 15:40 UTC (permalink / raw)
  To: समीर सिंह Sameer Singh
  Cc: 55370-done

> From: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
> Date: Sun, 15 May 2022 20:55:17 +0530
> Cc: 55370@debbugs.gnu.org
> 
> Ah. Okay
> Then I think you can close the bug report.

Done.





^ permalink raw reply	[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).