[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 16ccca6dc3: Improve support for the Brahmi script
From: |
Eli Zaretskii |
Subject: |
master 16ccca6dc3: Improve support for the Brahmi script |
Date: |
Sat, 16 Apr 2022 06:20:14 -0400 (EDT) |
branch: master
commit 16ccca6dc38aefb8c000560f8cf4cdc5f46b0727
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>
Improve support for the Brahmi script
* lisp/language/indian.el ("Brahmi"): New language environment.
Add composition rules for Brahmi.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Brahmi. (Bug#54914)
* etc/NEWS: Announce the new language environment.
---
etc/NEWS | 4 ++++
lisp/international/fontset.el | 2 ++
lisp/language/indian.el | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 40 insertions(+)
diff --git a/etc/NEWS b/etc/NEWS
index 14d970fe11..6913f159c0 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -596,6 +596,10 @@ to edit such sequences by allowing point to "enter" the
sequence.
*** New language environment "Northern Thai".
This uses the Tai Tham script, whose support has been enhanced.
+*** New language environment "Brahmi".
+This language environment supports Brahmi, which is a historical
+script that was used in ancient South Asia.
+
* Changes in Specialized Modes and Packages in Emacs 29.1
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 1950a40935..883f08905e 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -231,6 +231,7 @@
(chorasmian #x10FB0)
(elymaic #x10FE0)
(old-uyghur #x10F70)
+ (brahmi #x11013 #x11045 #x11052 #x11065)
(mahajani #x11150)
(khojki #x11200)
(khudawadi #x112B0)
@@ -770,6 +771,7 @@
chorasmian
elymaic
old-uyghur
+ brahmi
makasar
dives-akuru
cuneiform
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index e0adb0de6c..310905534e 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -126,6 +126,16 @@ environment."))
South Indian language Malayalam is supported in this language environment."))
'("Indian"))
+(set-language-info-alist
+ "Brahmi" '((charset unicode)
+ (coding-system utf-8)
+ (coding-priority utf-8)
+ ; (input-method . "brahmi") ; FIXME
+ (documentation . "\
+The ancient Brahmi script is supported in this language environment."))
+ '("Indian")) ; Should we have an "Old" category?
+
+
;; Replace mnemonic characters in REGEXP according to TABLE. TABLE is
;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING).
@@ -384,6 +394,30 @@ South Indian language Malayalam is supported in this
language environment."))
(list (vector (cdr slot) 0 #'font-shape-gstring))))))
char-script-table))
+;; Brahmi composition rules
+(let ((consonant "[\U00011013-\U00011034]")
+ (non-consonant "[^\U00011013-\U00011034]")
+ (numeral "[\U00011052-\U00011065]")
+ (multiplier "[\U00011064\U00011065]")
+ (virama "\U00011046")
+ (number-joiner "\U0001107F"))
+ (set-char-table-range composition-function-table
+ '(#x11046 . #x11046)
+ (list (vector
+ ;; Consonant conjuncts
+ (concat consonant virama consonant)
+ 1 'font-shape-gstring)
+ (vector
+ ;; Vowelless consonants
+ (concat consonant virama non-consonant)
+ 1 'font-shape-gstring)))
+ (set-char-table-range composition-function-table
+ '(#x1107F . #x1107F)
+ (list (vector
+ ;; Additive-multiplicative numerals
+ (concat multiplier number-joiner numeral)
+ 1 'font-shape-gstring))))
+
(provide 'indian)
;;; indian.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 16ccca6dc3: Improve support for the Brahmi script,
Eli Zaretskii <=