emacs-diffs
[Top][All Lists]
Advanced

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

master 2414fa3603: Add support for the Modi script


From: Eli Zaretskii
Subject: master 2414fa3603: Add support for the Modi script
Date: Tue, 17 May 2022 09:09:35 -0400 (EDT)

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

    Add support for the Modi script
    
    * lisp/language/indian.el ("Modi"): New language environment.
    Add composition rules for Modi.  Add sample text and input
    method.
    Add sample text to various scripts.
    Rename Punjabi to Gurmukhi.
    * lisp/international/fontset.el (script-representative-chars)
    (setup-default-fontset): Support Modi.
    * lisp/leim/quail/indian.el ("modi"): New input method.
    (Bug#55439)
    
    * etc/HELLO: Add a Modi greeting.
    Rename Hindi to Devanagari.
    Add a Gurmukhi greeting.
    Replace Odia greeting.
    * etc/NEWS: Announce the new language environment and its
    input method.
---
 etc/HELLO                     |   6 ++-
 etc/NEWS                      |   7 ++-
 lisp/international/fontset.el |   3 +-
 lisp/language/indian.el       |  54 +++++++++++++++++++---
 lisp/leim/quail/indian.el     | 101 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 160 insertions(+), 11 deletions(-)

diff --git a/etc/HELLO b/etc/HELLO
index 16a38b59d3..ba7bd8e132 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -38,6 +38,7 @@ Comanche /kəˈmæntʃiː/ Haa marʉ́awe
 Cree (ᓀᐦᐃᔭᐍᐏᐣ) ᑕᓂᓯ / ᐙᒋᔮ
 Czech (čeština)        Dobrý den
 Danish (dansk) Hej / Goddag / Halløj
+Devanagari (देवनागरी)  नमस्ते / नमस्कार
 Dutch (Nederlands)     Hallo / Dag
 Efik  /ˈɛfɪk/  Mɔkɔm
 Egyptian Hieroglyphs (𓂋𓏤𓈖𓆎𓅓‌𓏏𓊖)        𓅓𓊵𓏏𓊪, 𓇍𓇋𓂻𓍘𓇋
@@ -53,9 +54,9 @@ German (Deutsch)      Guten Tag / Grüß Gott
 Greek (ελληνικά)       Γειά σας
 Greek, ancient (ἑλληνική)      Οὖλέ τε καὶ μέγα χαῖρε
 Gujarati (ગુજરાતી)     નમસ્તે
+Gurmukhi (ਗੁਰਮੁਖੀ)     ਸਤ ਸ੍ਰੀ ਅਕਾਲ
 Hebrew (עִבְרִית)      שָׁלוֹם
 Hungarian (magyar)     Szép jó napot!
-Hindi (हिंदी)  नमस्ते / नमस्कार ।
 Inuktitut (ᐃᓄᒃᑎᑐᑦ)     ᐊᐃ
 Italian (italiano)     Ciao / Buon giorno
 Javanese (ꦧꦱꦗꦮꦶ)       console.log("ꦲꦭꦺꦴ");
@@ -69,10 +70,11 @@ Malayalam (മലയാളം)  നമസ്കാരം
 Maldivian (ދިވެހި)     އައްސަލާމު ޢަލައިކުމް / ކިހިނެހް؟
 Maltese (il-Malti)     Bonġu / Saħħa
 Mathematics    ∀ p ∈ world • hello p  □
+Modi (𑘦𑘻𑘚𑘲)    𑘡𑘦𑘭𑘿𑘎𑘰𑘨
 Mongolian (монгол хэл) Сайн байна уу?
 Northern Thai (ᨣᩣᩴᨾᩮᩬᩥᨦ / ᨽᩣᩈᩣᩃ᩶ᩣ᩠ᨶᨶᩣ) ᩈ᩠ᩅᩢᩔ᩠ᨯᩦᨣᩕᩢ᩠ᨸ
 Norwegian (norsk)      Hei / God dag
-Oriya (ଓଡ଼ିଆ)   ଶୁଣିବେ
+Oriya (ଓଡ଼ିଆ)   ନମସ୍କାର
 Polish  (język polski) Dzień dobry! / Cześć!
 Russian (русский)      Здра́вствуйте!
 Sharada (𑆯𑆳𑆫𑆢𑆳)        𑆤𑆩𑆱𑇀𑆑𑆳𑆫
diff --git a/etc/NEWS b/etc/NEWS
index 630288d431..6f9c434e81 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -807,11 +807,16 @@ 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"
+*** 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 language environment "Modi".
+This language environment supports the Modi script which was used to write
+the Marathi language in the past.  A new input method, 'modi', 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 0abbf2309c..40499f42d0 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -244,7 +244,7 @@
        (newa #x11400)
        (tirhuta #x11481 #x1148F #x114D0)
        (siddham #x1158E #x115AF #x115D4)
-       (modi #x11600)
+       (modi #x1160E #x11630 #x11655)
        (takri #x11680)
        (dogra #x11800)
        (warang-citi #x118A1)
@@ -782,6 +782,7 @@
                     sharada
                     tirhuta
                     siddham
+                    modi
                    makasar
                     dives-akuru
                    cuneiform
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 559239b491..257ecc1617 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -45,8 +45,9 @@
                (coding-system utf-8)
                (coding-priority utf-8)
                (input-method . "devanagari-aiba")
+                (sample-text . "Devanagari (देवनागरी)  नमस्ते / नमस्कार")
                (documentation . "\
-Such languages using Devanagari script as Hindi and Marathi
+Such languages using Devanagari script as Hindi, Marathi and Nepali
 are supported in this language environment."))
  '("Indian"))
 
@@ -55,16 +56,18 @@ are supported in this language environment."))
             (coding-system utf-8)
             (coding-priority utf-8)
             (input-method . "bengali-itrans")
+             (sample-text . "Bengali (বাংলা)   নমস্কার")
             (documentation . "\
 Such languages using Bengali script as Bengali and Assamese
 are supported in this language environment."))
  '("Indian"))
 
 (set-language-info-alist
- "Punjabi" '((charset unicode)
+ "Gurmukhi" '((charset unicode)
              (coding-system utf-8)
              (coding-priority utf-8)
              (input-method . "punjabi-itrans")
+              (sample-text . "Gurmukhi (ਗੁਰਮੁਖੀ)       ਸਤ ਸ੍ਰੀ ਅਕਾਲ")
              (documentation . "\
 North Indian language Punjabi is supported in this language environment."))
  '("Indian"))
@@ -74,6 +77,7 @@ North Indian language Punjabi is supported in this language 
environment."))
              (coding-system utf-8)
              (coding-priority utf-8)
              (input-method . "gujarati-itrans")
+              (sample-text . "Gujarati (ગુજરાતી)       નમસ્તે")
              (documentation . "\
 North Indian language Gujarati is supported in this language environment."))
  '("Indian"))
@@ -83,6 +87,7 @@ North Indian language Gujarati is supported in this language 
environment."))
              (coding-system utf-8)
              (coding-priority utf-8)
              (input-method . "oriya-itrans")
+              (sample-text . "Oriya (ଓଡ଼ିଆ)     ନମସ୍କାର")
              (documentation . "\
 Such languages using Oriya script as Oriya, Khonti, and Santali
 are supported in this language environment."))
@@ -93,6 +98,7 @@ are supported in this language environment."))
           (coding-system utf-8)
           (coding-priority utf-8)
           (input-method . "tamil-itrans")
+           (sample-text . "Tamil (தமிழ்)       வணக்கம்")
           (documentation . "\
 South Indian Language Tamil is supported in this language environment."))
  '("Indian"))
@@ -102,6 +108,7 @@ South Indian Language Tamil is supported in this language 
environment."))
            (coding-system utf-8)
            (coding-priority utf-8)
            (input-method . "telugu-itrans")
+            (sample-text . "Telugu (తెలుగు)    నమస్కారం")
            (documentation . "\
 South Indian Language Telugu is supported in this language environment."))
  '("Indian"))
@@ -122,6 +129,7 @@ environment."))
               (coding-system utf-8)
               (coding-priority utf-8)
               (input-method . "malayalam-itrans")
+               (sample-text . "Malayalam (മലയാളം)      നമസ്കാരം")
               (documentation . "\
 South Indian language Malayalam is supported in this language environment."))
  '("Indian"))
@@ -141,7 +149,7 @@ The ancient Brahmi script is supported in this language 
environment."))
             (coding-system utf-8)
             (coding-priority utf-8)
             (input-method . "kaithi")
-            (sample-text . "Kaithi (𑂍𑂶𑂟𑂲)        𑂩𑂰𑂧𑂩𑂰𑂧")
+            (sample-text . "Kaithi (𑂍𑂶𑂟𑂲)      𑂩𑂰𑂧𑂩𑂰𑂧")
             (documentation . "\
 Languages such as Awadhi, Bhojpuri, Magahi and Maithili
 which used the Kaithi script are supported in this language environment."))
@@ -152,7 +160,7 @@ which used the Kaithi script are supported in this language 
environment."))
              (coding-system utf-8)
              (coding-priority utf-8)
              (input-method . "tirhuta")
-             (sample-text . "Tirhuta (𑒞𑒱𑒩𑒯𑒳𑒞𑒰)        𑒣𑓂𑒩𑒢𑒰𑒧")
+             (sample-text . "Tirhuta (𑒞𑒱𑒩𑒯𑒳𑒞𑒰) 𑒣𑓂𑒩𑒢𑒰𑒧 / 𑒮𑒲𑒞𑒰𑒩𑒰𑒧")
              (documentation . "\
 Maithili language and its script Tirhuta is supported in this
 language environment."))
@@ -163,7 +171,7 @@ language environment."))
              (coding-system utf-8)
              (coding-priority utf-8)
              (input-method . "sharada")
-             (sample-text . "Sharada (𑆯𑆳𑆫𑆢𑆳)        𑆤𑆩𑆱𑇀𑆑𑆳𑆫")
+             (sample-text . "Sharada (𑆯𑆳𑆫𑆢𑆳)   𑆤𑆩𑆱𑇀𑆑𑆳𑆫")
              (documentation . "\
 Kashmiri language and its script Sharada is supported in this
 language environment."))
@@ -174,7 +182,7 @@ language environment."))
              (coding-system utf-8)
              (coding-priority utf-8)
              (input-method . "siddham")
-             (sample-text . "Siddham (𑖭𑖰𑖟𑖿𑖠𑖽)        𑖡𑖦𑖭𑖿𑖝𑖸")
+             (sample-text . "Siddham (𑖭𑖰𑖟𑖿𑖠𑖽)  𑖡𑖦𑖭𑖿𑖝𑖸")
              (documentation . "\
 Sanskrit language and one of its script Siddham is supported
 in this language environment."))
@@ -185,12 +193,22 @@ in this language environment."))
                   (coding-system utf-8)
                   (coding-priority utf-8)
                   (input-method . "syloti-nagri")
-                  (sample-text . "Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ)        ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ 
ꠀꠟꠣꠁꠇꠥꠝ")
+                  (sample-text . "Syloti Nagri (ꠍꠤꠟꠐꠤ ꠘꠣꠉꠞꠤ)   ꠀꠌ꠆ꠍꠣꠟꠣꠝꠥ 
ꠀꠟꠣꠁꠇꠥꠝ / ꠘꠝꠡ꠆ꠇꠣꠞ")
                   (documentation . "\
 Sylheti language and its script Syloti Nagri is supported
 in this language environment."))
  '("Indian"))
 
+(set-language-info-alist
+ "Modi" '((charset unicode)
+          (coding-system utf-8)
+          (coding-priority utf-8)
+          (input-method . "modi")
+          (sample-text . "Modi (𑘦𑘻𑘚𑘲)  𑘡𑘦𑘭𑘿𑘎𑘰𑘨")
+          (documentation . "\
+Marathi language and one of its script Modi is supported
+in this language environment."))
+ '("Indian"))
 
 ;; Replace mnemonic characters in REGEXP according to TABLE.  TABLE is
 ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING).
@@ -618,5 +636,27 @@ in this language environment."))
                                        vowel "?" nasal "?")
                                1 'font-shape-gstring))))
 
+;; Modi composition rules
+(let ((consonant            "[\x1160E-\x1162F]")
+      (independent-vowel    "[\x11600-\x1160D]")
+      (vowel                "[\x11630-\x1163C]")
+      (nasal                "\x1163D")
+      (visarga              "\x1163E")
+      (virama               "\x1163F")
+      (ardhacandra          "\x11640"))
+  (set-char-table-range composition-function-table
+                        '(#x11630 . #x11640)
+                        (list (vector
+                               ;; Consonant based syllables
+                               (concat consonant "\\(?:" virama consonant 
"\\)*\\(?:"
+                                       virama "\\|" vowel "*" ardhacandra "?" 
nasal
+                                       "?" visarga "?\\)")
+                               1 'font-shape-gstring)
+                              (vector
+                               ;; Vowels based syllables
+                               (concat independent-vowel virama "?" vowel "?" 
ardhacandra
+                                       nasal "?" visarga "?")
+                               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 eb9d1183e5..95798a4477 100644
--- a/lisp/leim/quail/indian.el
+++ b/lisp/leim/quail/indian.el
@@ -1348,4 +1348,105 @@ Full key sequences are listed below:")
 ("M"  ?ꠋ)
 )
 
+(quail-define-package
+ "modi" "Modi" "𑘦𑘻" t "Modi 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" ?𑙄)
+("w"  ?𑘚)
+("W"  ?𑘛)
+("e"  ?𑘹)
+("E"  ?𑘺)
+("`e" ?𑘊)
+("`E" ?𑘋)
+("r"  ?𑘨)
+("R"  ?𑘵)
+("`r" ?𑘆)
+("t"  ?𑘝)
+("T"  ?𑘞)
+("y"  ?𑘧)
+("u"  ?𑘳)
+("U"  ?𑘴)
+("`u" ?𑘄)
+("`U" ?𑘅)
+("i"  ?𑘱)
+("I"  ?𑘲)
+("`i" ?𑘂)
+("`I" ?𑘃)
+("o"  ?𑘻)
+("O"  ?𑘼)
+("`o" ?𑘌)
+("`O" ?𑘍)
+("p"  ?𑘢)
+("P"  ?𑘣)
+("a"  ?𑘰)
+("A"  ?𑘁)
+("`a" ?𑘀)
+("s"  ?𑘭)
+("S"  ?𑘫)
+("d"  ?𑘟)
+("D"  ?𑘠)
+("f"  ?𑘿)
+("F"  ?𑘶)
+("`f" ?𑘇)
+("g"  ?𑘐)
+("G"  ?𑘑)
+("h"  ?𑘮)
+("H"  ?𑘾)
+("j"  ?𑘕)
+("J"  ?𑘖)
+("k"  ?𑘎)
+("K"  ?𑘏)
+("l"  ?𑘩)
+("L"  ?𑘯)
+("`l" ?𑘷)
+("`L" ?𑘈)
+("z"  ?𑘗)
+("Z"  ?𑘒)
+("`z" ?𑘸)
+("`Z" ?𑘉)
+("x"  ?𑘬)
+("X"  ?𑙀)
+("c"  ?𑘓)
+("C"  ?𑘔)
+("`c" #x200C)  ; ZWNJ
+("v"  ?𑘪)
+("b"  ?𑘤)
+("B"  ?𑘥)
+("n"  ?𑘡)
+("N"  ?𑘜)
+("m"  ?𑘦)
+("M"  ?𑘽)
+)
+
 ;;; indian.el ends here



reply via email to

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