From 0302d13ac0fc6eea79ebb7745e78c074b63f5757 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?= Date: Sat, 11 Jun 2022 18:53:43 +0530 Subject: [PATCH] Add support for the Meetei Mayek script * lisp/language/indian.el ("Meetei Mayek"): New language environment. Add composition rules for Meetei Mayek. Add sample text and input method. * lisp/international/fontset.el (script-representative-chars) (setup-default-fontset): Support Meetei Mayek. * lisp/leim/quail/indian.el ("meetei-mayek"): New input method. * etc/HELLO: Add a Meetei Mayek greeting. * etc/NEWS: Announce the new language environment. --- etc/HELLO | 1 + etc/NEWS | 1 + lisp/international/fontset.el | 2 + lisp/language/indian.el | 27 ++++++++++ lisp/leim/quail/indian.el | 99 +++++++++++++++++++++++++++++++++++ 5 files changed, 130 insertions(+) diff --git a/etc/HELLO b/etc/HELLO index baa8af0f07..d73465318c 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -83,6 +83,7 @@ Malayalam (മലയാളം) നമസ്കാരം Maldivian (ދިވެހި) އައްސަލާމު ޢަލައިކުމް / ކިހިނެހް؟ Maltese (il-Malti) Bonġu / Saħħa Mathematics ∀ p ∈ world • hello p □ +Meetei Mayek (ꯃꯤꯇꯩ ꯃꯌꯦꯛ) ꯈꯨꯔꯨꯝꯖꯔꯤ Modi (𑘦𑘻𑘚𑘲) 𑘡𑘦𑘭𑘿𑘎𑘰𑘨 Mongolian (монгол хэл) Сайн байна уу? Northern Thai (ᨣᩣᩴᨾᩮᩬᩥᨦ / ᨽᩣᩈᩣᩃ᩶ᩣ᩠ᨶᨶᩣ) ᩈ᩠ᩅᩢᩔ᩠ᨯᩦᨣᩕᩢ᩠ᨸ diff --git a/etc/NEWS b/etc/NEWS index 424d1250c3..7aa1158ed7 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -884,6 +884,7 @@ corresponding language environments are: **** Grantha script and language environment **** Kharoshthi script and language environment **** Lepcha script and language environment +**** Meetei Mayek script and language environment --- *** The "Oriya" language environment was renamed to "Odia". diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 273cba8d63..8d34aa99c3 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -211,6 +211,7 @@ font-encoding-charset-alist (javanese #xA98F #xA9B4 #xA9CA) (cham #xAA00) (tai-viet #xAA80) + (meetei-mayek #xABC0 #xABE3 #xAAE0 #xAAF6) (hangul #xAC00) (linear-b #x10000) (aegean-number #x10100) @@ -776,6 +777,7 @@ setup-default-fontset rejang javanese tai-viet + meetei-mayek aegean-number ancient-greek-number ancient-symbol diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 6e0fb10b4f..c5bb47955d 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el @@ -255,6 +255,17 @@ 'devanagari language environment.")) '("Indian")) +(set-language-info-alist + "Meetei Mayek" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "meetei-mayek") + (sample-text . "Meetei Mayek (ꯃꯤꯇꯩ ꯃꯌꯦꯛ) ꯈꯨꯔꯨꯝꯖꯔꯤ") + (documentation . "\ +Meetei language and its script Meetei Mayek are supported in this +language environment.")) + '("Indian")) + ;; Replace mnemonic characters in REGEXP according to TABLE. TABLE is ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING). @@ -760,5 +771,21 @@ malayalam-composable-pattern other-signs "?") 1 'font-shape-gstring)))) +;; Meetei Mayek composition rules +(let ((akshara "[\xABC0-\xABE2\xAAE0-\xAAEA]") + (vowel "[\xABE3-\xABE9\xAAEB-\xAAEC]") + (nasal "\xABEA") + (visarga "\xAAF5") + (virama "[\xABED\xAAF6]") + (heavy-tone "\x11640")) + (set-char-table-range composition-function-table + '(#xABE3 . #xABED) + (list (vector + ;; Consonant based syllables + (concat akshara "\\(?:" virama akshara "\\)*\\(?:" + virama "\\|" vowel "*" nasal "?" visarga "?" + heavy-tone "?\\)") + 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 bc61a312fa..8fffcc3511 100644 --- a/lisp/leim/quail/indian.el +++ b/lisp/leim/quail/indian.el @@ -1863,5 +1863,104 @@ "||" ("M" ?ᰖ) ("`m" ?ᰮ)) +(quail-define-package + "meetei-mayek" "Meetei Mayek" "ꯃꯤ" t "Meetei Mayek 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" ?ꫥ) + ("w" ?ꯋ) + ("W" ?ꫦ) + ("`w" ?ꫧ) + ("e" ?ꯦ) + ("E" ?ꯩ) + ("`e" ?ꫠ) + ("r" ?ꯔ) + ("t" ?ꯇ) + ("T" ?ꯊ) + ("`t" ?ꯠ) + ("y" ?ꯌ) + ("u" ?ꯨ) + ("U" ?ꯎ) + ("`u" ?ꫬ) + ("i" ?ꯤ) + ("I" ?ꯏ) + ("`i" ?ꯢ) + ("`I" ?ꫫ) + ("o" ?ꯣ) + ("O" ?ꯧ) + ("`o" ?ꫡ) + ("`O" ?ꫮ) + ("p" ?ꯄ) + ("P" ?ꯐ) + ("`p" ?ꯞ) + ("a" ?ꯥ) + ("A" ?ꯑ) + ("`a" ?ꫭ) + ("`A" ?ꫯ) + ("s" ?ꯁ) + ("S" ?ꫩ) + ("`s" ?ꫪ) + ("d" ?ꯗ) + ("D" ?ꯙ) + ("f" ?꯭) + ("F" ?꫶) + ("g" ?ꯒ) + ("G" ?ꯘ) + ("h" ?ꯍ) + ("H" ?ꫵ) + ("j" ?ꯖ) + ("J" ?ꯓ) + ("k" ?ꯀ) + ("K" ?ꯈ) + ("`k" ?ꯛ) + ("l" ?ꯂ) + ("L" ?ꯜ) + ("z" ?ꯉ) + ("Z" ?ꯡ) + ("`z" ?ꫣ) + ("x" ?ꯪ) + ("c" ?ꯆ) + ("C" ?ꫢ) + ("v" ?꯬) + ("V" ?ꫳ) + ("`v" ?ꫴ) + ("b" ?ꯕ) + ("B" ?ꯚ) + ("n" ?ꯅ) + ("N" ?ꯟ) + ("`n" ?ꫨ) + ("m" ?ꯃ) + ("M" ?ꯝ) + ("`m" ?ꫲ) + ("`?" ?꫱)) + (provide 'indian) ;;; indian.el ends here -- 2.36.1