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.
This commit is contained in:
समीर सिंह Sameer Singh 2022-09-27 16:44:28 +05:30 committed by Eli Zaretskii
parent db74fd0a4d
commit 2286fbceab
5 changed files with 126 additions and 5 deletions

View file

@ -24,6 +24,7 @@ Non-ASCII examples:
LANGUAGE (NATIVE NAME) HELLO
---------------------- -----
Adlam (𞤀𞤣𞤤𞤢𞤥) 𞤅𞤢𞤤𞤢𞥄𞤥
Amharic (አማርኛ) ሠላም
Arabic (العربيّة) السّلام عليكم
Armenian (հայերեն) Բարև ձեզ

View file

@ -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".

View file

@ -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)

View file

@ -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

View file

@ -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