mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
(indian-font-foundry): New variable.
(indian-script-language-alist): New variable. (indian-font-char-index-table): New variable. (indian-font-char): New function. (indian-font-char-range): New function. (font-ccl-encoder-alist): Add entry for AKRUTI font.
This commit is contained in:
parent
d6156ce844
commit
098d86d571
1 changed files with 87 additions and 0 deletions
|
|
@ -45,6 +45,89 @@
|
|||
|
||||
(define-coding-system-alias 'devanagari 'in-is13194)
|
||||
|
||||
(defvar indian-font-foundry 'cdac
|
||||
"Font foundry for Indian characters.
|
||||
Currently supported foundries are `cdac' and `akruti'.")
|
||||
|
||||
(defvar indian-script-language-alist
|
||||
"Alist of Indian scripts vs the corresponding language list and font foundry.
|
||||
Each element has this form:
|
||||
|
||||
(SCRIPT LANGUAGE-LIST FONT-FOUNDRY)
|
||||
|
||||
SCRIPT is one of Indian script names.
|
||||
|
||||
LANGUAGE-LIST is a list of Indian langauge names SCRIPT is used for.
|
||||
The list is in the priority order.
|
||||
|
||||
FONT-FOUNDRY is a font foundry representing a group of Indian
|
||||
fonts. If the value is nil, the value of `indian-font-foundry'
|
||||
is used."
|
||||
'((devanagari (hindi sanskrit) nil)
|
||||
(bengali (bengali assamese) nil)
|
||||
(gurmukhi (punjabi) nil)
|
||||
(gujarati (gujarati) nil)
|
||||
(oriya (oriya) nil)
|
||||
(tamil (tamil) nil)
|
||||
(telugu (telugu) nil)
|
||||
(kannada (kannada) nil)
|
||||
(malayalam (malayalam) nil)))
|
||||
|
||||
(defconst indian-font-char-index-table
|
||||
'( ; for which language(s)
|
||||
;; CDAC fonts
|
||||
(#x0000 . cdac:dv-ttsurekh) ; hindi, etc
|
||||
(#x0100 . cdac:sd-ttsurekh) ; sanskrit
|
||||
(#x0200 . cdac:bn-ttdurga) ; bengali
|
||||
(#x0300 . cdac:as-ttdurga) ; assamese
|
||||
(#x0400 . cdac:pn-ttamar) ; punjabi
|
||||
(#x0500 . cdac:gj-ttavantika) ; gujarati
|
||||
(#x0600 . cdac:or-ttsarala) ; oriya
|
||||
(#x0700 . cdac:tm-ttvalluvar) ; tamil
|
||||
(#x0800 . cdac:tl-tthemalatha) ; telugu
|
||||
(#x0900 . cdac:kn-ttuma) ; kannada
|
||||
(#x0A00 . cdac:ml-ttkarthika) ; malayalam
|
||||
|
||||
;; AKRUTI fonts
|
||||
(#x0B00 . akruti:dev) ; hindi, etc
|
||||
(#x0C00 . akruti:bng) ; bengali
|
||||
(#x0D00 . akruti:pnj) ; punjabi
|
||||
(#x0E00 . akruti:guj) ; gujarati
|
||||
(#x0F00 . akruti:ori) ; oriya
|
||||
(#x1000 . akruti:tml) ; tamil
|
||||
(#x1100 . akruti:tlg) ; telugu
|
||||
(#x1200 . akruti:knd) ; kannada
|
||||
(#x1300 . akruti:mal) ; malayalam
|
||||
)
|
||||
"Aliat of indices of `indian-glyph' character vs Indian font identifiers.
|
||||
Each element has this form: (INDEX . FONT-IDENTIFIER)
|
||||
|
||||
INDEX is an index number of the first character in the charset
|
||||
`indian-glyph' assigned for glyphs in the font specified by
|
||||
FONT-IDENTIFIER. Currently FONT-IDENTIFIERs are defined for CDAC
|
||||
and AKRUTI font groups.")
|
||||
|
||||
(defun indian-font-char (index font-identifier)
|
||||
"Return character of charset `indian-glyph' made from glyph index INDEX.
|
||||
FONT-IDENTIFIER is an identifier of an Indian font listed in the
|
||||
variable `indian-font-char-index-table'. It specifies which
|
||||
font INDEX is for."
|
||||
(if (or (< index 0) (> index 255))
|
||||
(error "Invalid glyph index: %d" index))
|
||||
(let ((start (car (rassq font-identifier indian-font-char-index-table))))
|
||||
(if (not start)
|
||||
(error "Unknown font identifier: %s" font-identifier))
|
||||
(setq index (+ start index))
|
||||
(make-char 'indian-glyph (+ (/ index 96) 32) (+ (% index 96) 32))))
|
||||
|
||||
;; Return a range of characters (cons of min and max character) of the
|
||||
;; charset `indian-glyph' for displaying SCRIPT in LANGUAGE by a font
|
||||
;; of FOUNDRY.
|
||||
|
||||
(defun indian-font-char-range (font-identifier)
|
||||
(cons (indian-font-char 0 font-identifier)
|
||||
(indian-font-char 255 font-identifier)))
|
||||
|
||||
(defvar indian-script-table
|
||||
'[
|
||||
devanagari
|
||||
|
|
@ -82,6 +165,10 @@ The default value is `devanagari'.")
|
|||
(cons (cons "-CDAC" 'ccl-encode-indian-glyph-font)
|
||||
font-ccl-encoder-alist))
|
||||
|
||||
(setq font-ccl-encoder-alist
|
||||
(cons (cons "-AKRUTI" 'ccl-encode-indian-glyph-font)
|
||||
font-ccl-encoder-alist))
|
||||
|
||||
(provide 'indian)
|
||||
|
||||
;;; indian.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue