From bfa1e6f86d442e220f2208e7fb08d222ab0733ce 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: 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 | 24 ++++++++- lisp/leim/quail/misc-lang.el | 97 +++++++++++++++++++++++++++++++++++ 5 files changed, 127 insertions(+), 6 deletions(-) diff --git a/etc/HELLO b/etc/HELLO index d73465318c..18c5ee5e54 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 99243481a0..99027744c6 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 99c7848704..65bc1b4024 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -295,7 +295,7 @@ font-encoding-charset-alist (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 3d5b68f84b..8482a64cd1 100644 --- a/lisp/language/misc-lang.el +++ b/lisp/language/misc-lang.el @@ -236,7 +236,7 @@ egyptian-shape-grouping '(#x10D1D . #x10D27) (list (vector "[\x10D00-\x10D27]+" - 1 'font-shape-gstring))) + 0 'font-shape-gstring))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Kharoแนฃแนญhฤซ @@ -269,6 +269,28 @@ egyptian-shape-grouping 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 0c4a0d4ce4..6bafa6b5fb 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.37.3