From 2286fbceaba49473e94011d2c37549f38304497a Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E0=A4=B8=E0=A4=AE=E0=A5=80=E0=A4=B0=20=E0=A4=B8=E0=A4=BF?= =?utf8?q?=E0=A4=82=E0=A4=B9=20Sameer=20Singh?= Date: Tue, 27 Sep 2022 16:44:28 +0530 Subject: [PATCH] Add support for the Adlam script (bug#58111) * lisp/language/misc-lang.el ("Adlam"): New language environment. Add composition rules for Adlam. Add sample text and input method. * lisp/international/fontset.el (script-representative-chars): Support Adlam. * lisp/leim/quail/misc-lang.el ("adlam"): New input method. * etc/HELLO: Add Adlam greeting. * etc/NEWS: Announce the new language environment. --- etc/HELLO | 1 + etc/NEWS | 9 ++-- lisp/international/fontset.el | 2 +- lisp/language/misc-lang.el | 22 ++++++++ lisp/leim/quail/misc-lang.el | 97 +++++++++++++++++++++++++++++++++++ 5 files changed, 126 insertions(+), 5 deletions(-) diff --git a/etc/HELLO b/etc/HELLO index d73465318ca..18c5ee5e540 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -24,6 +24,7 @@ Non-ASCII examples: LANGUAGE (NATIVE NAME) HELLO ---------------------- ----- +Adlam (𞤀𞤣𞤤𞤢𞤥) 𞤅𞤢𞤤𞤢𞥄𞤥 Amharic (አማርኛ) ሠላም Arabic (العربيّة) السّلام عليكم Armenian (հայերեն) Բարև ձեզ diff --git a/etc/NEWS b/etc/NEWS index e70f9be5468..8cb4de4d064 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1229,10 +1229,10 @@ to edit such sequences by allowing point to "enter" the sequence. *** Support for many old scripts and writing systems. Emacs now supports and has language-environments and input methods for several dozens of old scripts that were used in the past for various -languages in South and South-East Asia. For each such script Emacs -now has font-selection and character composition rules, a language -environment, and an input method. The newly-added scripts and the -corresponding language environments are: +languages. For each such script Emacs now has font-selection and +character composition rules, a language environment, and an input +method. The newly-added scripts and the corresponding language +environments are: Tai Tham script and the Northern Thai language environment Brahmi script and language environment @@ -1259,6 +1259,7 @@ Grantha script and language environment Kharoshthi script and language environment Lepcha script and language environment Meetei Mayek script and language environment +Adlam 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 ff2411eb869..3cd7765ef81 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -295,7 +295,7 @@ (wancho #x1e2c0) (nag-mundari #x1E4D0 #x1E4EB #x1E4F0) (mende-kikakui #x1E810) - (adlam #x1E900) + (adlam #x1E900 #x1E943) (indic-siyaq-number #x1ec71) (ottoman-siyaq-number #x1ed01) (mahjong-tile #x1F000) diff --git a/lisp/language/misc-lang.el b/lisp/language/misc-lang.el index 3d5b68f84be..bd1edb91853 100644 --- a/lisp/language/misc-lang.el +++ b/lisp/language/misc-lang.el @@ -269,6 +269,28 @@ using the Kharoṣṭhī script."))) modifier "*") 1 'font-shape-gstring)))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Adlam +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(set-language-info-alist + "Adlam" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "adlam") + (sample-text . "Adlam (𞤀𞤣𞤤𞤢𞤥) 𞤅𞤢𞤤𞤢𞥄𞤥") + (documentation . "\ +Fulani language and its script Adlam are supported +in this language environment."))) + +;; Adlam composition rules +(set-char-table-range + composition-function-table + '(#x1E900 . #x1E95F) + (list (vector + "[\x1E900-\x1E95F]+" + 0 'font-shape-gstring))) + (provide 'misc-lang) ;;; misc-lang.el ends here diff --git a/lisp/leim/quail/misc-lang.el b/lisp/leim/quail/misc-lang.el index 0c4a0d4ce40..6bafa6b5fb3 100644 --- a/lisp/leim/quail/misc-lang.el +++ b/lisp/leim/quail/misc-lang.el @@ -1180,5 +1180,102 @@ (".||" ?𐩗) (".=" ?𐩘)) +(quail-define-package + "adlam" "Adlam" "𞤀" t "Adlam 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" ?𞥑) + ("`!" ?𞥞) + ("2" ?𞥒) + ("3" ?𞥓) + ("4" ?𞥔) + ("5" ?𞥕) + ("6" ?𞥖) + ("7" ?𞥗) + ("8" ?𞥘) + ("9" ?𞥙) + ("0" ?𞥐) + ("q" ?𞤹) + ("Q" ?𞤗) + ("`q" ?𞥆) + ("w" ?𞤱) + ("W" ?𞤏) + ("`w" ?𞥈) + ("`W" ?𞥉) + ("e" ?𞤫) + ("E" ?𞤉) + ("`e" ?𞥅) + ("r" ?𞤪) + ("R" ?𞤈) + ("t" ?𞤼) + ("T" ?𞤚) + ("y" ?𞤴) + ("Y" ?𞤒) + ("`y" ?𞤰) + ("`Y" ?𞤎) + ("u" ?𞤵) + ("U" ?𞤓) + ("i" ?𞤭) + ("I" ?𞤋) + ("o" ?𞤮) + ("O" ?𞤌) + ("p" ?𞤨) + ("P" ?𞤆) + ("a" ?𞤢) + ("A" ?𞤀) + ("`a" ?𞥄) + ("s" ?𞤧) + ("S" ?𞤅) + ("`s" ?𞥃) + ("`S" ?𞤡) + ("d" ?𞤣) + ("D" ?𞤁) + ("`d" ?𞤯) + ("`D" ?𞤍) + ("f" ?𞤬) + ("F" ?𞤊) + ("g" ?𞤺) + ("G" ?𞤘) + ("`g" ?𞥀) + ("`G" ?𞤞) + ("h" ?𞤸) + ("H" ?𞤖) + ("`h" ?𞥇) + ("j" ?𞤶) + ("J" ?𞤔) + ("k" ?𞤳) + ("K" ?𞤑) + ("`k" ?𞤿) + ("`K" ?𞤝) + ("l" ?𞤤) + ("L" ?𞤂) + ("z" ?𞥁) + ("Z" ?𞤟) + ("`z" ?𞥂) + ("`Z" ?𞤠) + ("x" ?𞤽) + ("X" ?𞤛) + ("c" ?𞤷) + ("C" ?𞤕) + ("`c" #x200C) ; ZWNJ + ("v" ?𞤾) + ("V" ?𞤜) + ("`v" ?𞥊) + ("b" ?𞤦) + ("B" ?𞤄) + ("`b" ?𞤩) + ("`B" ?𞤇) + ("n" ?𞤲) + ("N" ?𞤐) + ("`n" ?𞤻) + ("`N" ?𞤙) + ("m" ?𞤥) + ("M" ?𞤃) + ("`m" ?𞥋) + ("`/" ?𞥟)) + (provide 'misc-lang) ;;; misc-lang.el ends here -- 2.39.2