From 746772b9a572254215ea5dc2798023fc9e47fa87 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: Thu, 9 Jun 2022 19:54:10 +0530 Subject: [PATCH] Add support for the Lepcha script * lisp/language/indian.el ("Lepcha"): New language environment. Add composition rules for Lepcha. Add sample text and input method. * lisp/language/misc-lang.el ("Kharoshthi"): Adjust whitespace. * lisp/international/fontset.el (script-representative-chars) (setup-default-fontset): Support Lepcha. * lisp/leim/quail/indian.el ("lepcha"): New input method. * etc/HELLO: Add a Lepcha greeting. * etc/NEWS: Announce the new language environment. --- etc/HELLO | 1 + etc/NEWS | 1 + lisp/international/fontset.el | 2 + lisp/language/indian.el | 25 ++++++++++ lisp/language/misc-lang.el | 12 ++--- lisp/leim/quail/indian.el | 93 +++++++++++++++++++++++++++++++++++ 6 files changed, 128 insertions(+), 6 deletions(-) diff --git a/etc/HELLO b/etc/HELLO index 8787a6e0ae..e53bf74f4d 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -76,6 +76,7 @@ Kharoṣṭhī (𐨑𐨪𐨆𐨛𐨁) 𐨣𐨨𐨲𐨪𐨆 𐨐𐨪𐨅𐨨𐨁 Khmer (ភាសាខ្មែរ) ជំរាបសួរ Lakota (Lakȟotiyapi) Taŋyáŋ yahí! Lao (ພາສາລາວ) ສະບາຍດີ / ຂໍໃຫ້ໂຊກດີ +Lepcha (ᰛᰩᰵ) ᰂᰦᰕᰥᰬ Limbu (ᤕᤰᤌᤢᤱ ᤐᤠᤴ) ᤛᤣᤘᤠᤖᤥ Makasar (𑻪𑻢𑻪𑻢) 𑻦𑻤𑻵𑻱 Malayalam (മലയാളം) നമസ്കാരം diff --git a/etc/NEWS b/etc/NEWS index 9fc8a74419..434525cbf2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -864,6 +864,7 @@ corresponding language environments are: **** Hanifi Rohingya script and language environment **** Grantha script and language environment **** Kharoshthi script and language environment +**** Lepcha 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 44421a96da..273cba8d63 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -193,6 +193,7 @@ font-encoding-charset-alist (balinese #x1B13 #x1B35 #x1B5E) (sundanese #x1B8A #x1BAB #x1CC4) (batak #x1BC2 #x1BE7 #x1BFF) + (lepcha #x1C00 #x1C24 #x1C40) (tai-le #x1950) (tai-lue #x1980) (tai-tham #x1A20 #x1A55 #x1A61 #x1A80) @@ -767,6 +768,7 @@ setup-default-fontset balinese sundanese batak + lepcha symbol braille yi diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 9329b43fea..a6f50962d8 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el @@ -244,6 +244,17 @@ 'devanagari Grantha script, are supported in this language environment.")) '("Indian")) +(set-language-info-alist + "Lepcha" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "lepcha") + (sample-text . "Lepcha (ᰛᰩᰵ) ᰂᰦᰕᰥᰬ") + (documentation . "\ +Lepcha language and its script are supported in this +language environment.")) + '("Indian")) + ;; Replace mnemonic characters in REGEXP according to TABLE. TABLE is ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING). @@ -734,5 +745,19 @@ malayalam-composable-pattern "?" avagraha "?") 1 'font-shape-gstring)))) +;; Lepcha composition rules +(let ((consonant "[\x1C00-\x1C23\x1C4D-\x1C4F]") + (vowel "[\x1C26-\x1C2C]") + (subjoined-letter "[\x1C24\x1C25]") + (consonant-sign "[\x1C2D-\x1C35]") + (other-signs "[\x1C36\x1C37]")) + (set-char-table-range composition-function-table + '(#x1C24 . #x1C37) + (list (vector + ;; Consonant based syllables + (concat consonant other-signs "?" vowel "?" + consonant-sign "?" subjoined-letter "?") + 1 'font-shape-gstring)))) + (provide 'indian) ;;; indian.el ends here diff --git a/lisp/language/misc-lang.el b/lisp/language/misc-lang.el index e0e7add158..1e915c2f83 100644 --- a/lisp/language/misc-lang.el +++ b/lisp/language/misc-lang.el @@ -242,11 +242,11 @@ egyptian-shape-grouping (set-language-info-alist "Kharoshthi" '((charset unicode) - (coding-system utf-8) - (coding-priority utf-8) - (input-method . "kharoshthi") - (sample-text . "Kharoṣṭhī (𐨑𐨪𐨆𐨛𐨁) 𐨣𐨨𐨲𐨪𐨆 𐨐𐨪𐨅𐨨𐨁") - (documentation . "\ + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "kharoshthi") + (sample-text . "Kharoṣṭhī (𐨑𐨪𐨆𐨛𐨁) 𐨣𐨨𐨲𐨪𐨆 𐨐𐨪𐨅𐨨𐨁") + (documentation . "\ Language environment for Gāndhārī, Sanskrit, and other languages using the Kharoṣṭhī script."))) @@ -255,7 +255,7 @@ egyptian-shape-grouping (virama "\U00010A3F") (modifier "[\U00010A0C-\U00010A0F\U00010A38-\U00010A3A]")) (set-char-table-range composition-function-table - '(#x10A3F . #x10A3F) + '(#x10A3F . #x10A3F) (list (vector (concat consonant diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el index 6a3582e83d..bc61a312fa 100644 --- a/lisp/leim/quail/indian.el +++ b/lisp/leim/quail/indian.el @@ -1771,4 +1771,97 @@ "||" ("`m" ?𑌁) ("`M" ?𑌀)) +(quail-define-package + "lepcha" "Lepcha" "ᰛᰩᰵ" t "Lepcha 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" ?᰿) + ("e" ?ᰬ) + ("r" ?ᰛ) + ("R" ?ᰥ) + ("`r" ?ᰲ) + ("t" ?ᰊ) + ("T" ?ᰋ) + ("`t" ?ᰳ) + ("y" ?ᰚ) + ("Y" ?ᰤ) + ("u" ?ᰪ) + ("U" ?ᰫ) + ("i" ?ᰧ) + ("o" ?ᰨ) + ("O" ?ᰩ) + ("p" ?ᰎ) + ("P" ?ᰏ) + ("`p" ?ᰐ) + ("`P" ?ᰱ) + ("a" ?ᰦ) + ("A" ?ᰣ) + ("s" ?ᰠ) + ("S" ?ᰡ) + ("d" ?ᰌ) + ("f" ?ᰑ) + ("F" ?ᰒ) + ("g" ?ᰃ) + ("G" ?ᰄ) + ("h" ?ᰝ) + ("H" ?ᰞ) + ("j" ?ᰈ) + ("k" ?ᰀ) + ("K" ?ᰁ) + ("`k" ?ᰂ) + ("`K" ?ᰭ) + ("l" ?ᰜ) + ("L" ?ᰯ) + ("z" ?ᰉ) + ("Z" ?ᰅ) + ("`z" ?ᰴ) + ("`Z" ?ᰵ) + ("x" ?ᰶ) + ("X" ?᰷) + ("c" ?ᰆ) + ("C" ?ᰇ) + ("`c" #x200C) ; ZWNJ + ("v" ?ᰟ) + ("b" ?ᰓ) + ("B" ?ᰔ) + ("n" ?ᰍ) + ("N" ?ᰰ) + ("m" ?ᰕ) + ("M" ?ᰖ) + ("`m" ?ᰮ)) + +(provide 'indian) ;;; indian.el ends here -- 2.36.1