summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorसमीर सिंह Sameer Singh <lumarzeli30@gmail.com>2022-09-27 16:44:28 +0530
committerEli Zaretskii <eliz@gnu.org>2022-09-28 15:40:16 +0300
commit2286fbceaba49473e94011d2c37549f38304497a (patch)
treefff4dc602393a098eb6bb7cd85937921371ff7b9
parentdb74fd0a4dba7a7e7abff50501eb6f0961f2e4d6 (diff)
downloademacs-2286fbceaba49473e94011d2c37549f38304497a.tar.gz
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.
-rw-r--r--etc/HELLO1
-rw-r--r--etc/NEWS9
-rw-r--r--lisp/international/fontset.el2
-rw-r--r--lisp/language/misc-lang.el22
-rw-r--r--lisp/leim/quail/misc-lang.el97
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