aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2008-02-22 01:49:10 +0000
committerKenichi Handa2008-02-22 01:49:10 +0000
commitcdbe6a039d5bb5a1655f3ab4cbe1a5c042b96b4c (patch)
tree1943bb3d737bfdd774259b14a44a681c108ec629
parentcc8d131137a4c3767f0b4a7d342781a5c0afa14f (diff)
downloademacs-cdbe6a039d5bb5a1655f3ab4cbe1a5c042b96b4c.tar.gz
emacs-cdbe6a039d5bb5a1655f3ab4cbe1a5c042b96b4c.zip
(indian-font-foundry)
(indian-script-language-alist, indian-font-char-index-table) (indian-font-char, indian-font-char-range, indian-script-table) (indian-default-script, indian-composable-pattern): Delete them. ("Devanagari", "Kannada", "Malayalam", "Tamil"): Definitions of language environments moved to here. ("Bengali", "Punjabi", "Gujarati", "Oriya", "Telugu"): New language environments.
-rw-r--r--lisp/language/indian.el212
1 files changed, 91 insertions, 121 deletions
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 8bceb0ac008..fdd903376c5 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -1,4 +1,4 @@
1;;; indian.el --- Indian languages support -*- coding: iso-2022-7bit; -*- 1;;; indian.el --- Indian languages support -*- coding: utf-8; -*-
2 2
3;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 3;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
@@ -6,7 +6,8 @@
6;; National Institute of Advanced Industrial Science and Technology (AIST) 6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021 7;; Registration Number H14PRO021
8 8
9;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org> 9;; Maintainer: Kenichi Handa <handa@m17n.org>
10;; KAWABATA, Taichi <kawabata@m17n.org>
10;; Keywords: multilingual, i18n, Indian 11;; Keywords: multilingual, i18n, Indian
11 12
12;; This file is part of GNU Emacs. 13;; This file is part of GNU Emacs.
@@ -28,8 +29,8 @@
28 29
29;;; Commentary: 30;;; Commentary:
30 31
31;; This file defines in-is13194 coding system and relationship between 32;; This file contains definitions of Indian language environments, and
32;; indian-glyph character-set and various CDAC fonts. 33;; setups for displaying the scrtipts used there.
33 34
34;;; Code: 35;;; Code:
35 36
@@ -44,120 +45,91 @@
44 45
45(define-coding-system-alias 'devanagari 'in-is13194-devanagari) 46(define-coding-system-alias 'devanagari 'in-is13194-devanagari)
46 47
47(defvar indian-font-foundry 'cdac 48(set-language-info-alist
48 "Font foundry for Indian characters. 49 "Devanagari" '((charset unicode)
49Currently supported foundries are `cdac' and `akruti'.") 50 (coding-system utf-8)
50 51 (coding-priority utf-8)
51(defvar indian-script-language-alist 52 (input-method . "dev-aiba")
52 '((devanagari (hindi sanskrit) nil) 53 (documentation . "\
53 (bengali (bengali assamese) nil) 54Such languages using Devanagari script as Hindi and Marathi
54 (gurmukhi (punjabi) nil) 55are supported in this language environment."))
55 (gujarati (gujarati) nil) 56 '("Indian"))
56 (oriya (oriya) nil) 57
57 (tamil (tamil) nil) 58(set-language-info-alist
58 (telugu (telugu) nil) 59 "Bengali" '((charset unicode)
59 (kannada (kannada) nil) 60 (coding-system utf-8)
60 (malayalam (malayalam) nil)) 61 (coding-priority utf-8)
61 "Alist of Indian scripts vs the corresponding language list and font foundry. 62 (input-method . "bengali-itrans")
62Each element has this form: 63 (documentation . "\
63 64Such languages using Bengali script as Bengali and Assamese
64 (SCRIPT LANGUAGE-LIST FONT-FOUNDRY) 65are supported in this language environment."))
65 66 '("Indian"))
66SCRIPT is one of Indian script names. 67
67 68(set-language-info-alist
68LANGUAGE-LIST is a list of Indian langauge names SCRIPT is used for. 69 "Punjabi" '((charset unicode)
69The list is in the priority order. 70 (coding-system utf-8)
70 71 (coding-priority utf-8)
71FONT-FOUNDRY is a font foundry representing a group of Indian 72 (input-method . "punjabi-itrans")
72fonts. If the value is nil, the value of `indian-font-foundry' 73 (documentation . "\
73is used.") 74North Indian language Punjabi is supported in this language environment."))
74 75 '("Indian"))
75(defconst indian-font-char-index-table 76
76 '( ; for which language(s) 77(set-language-info-alist
77 ;; CDAC fonts 78 "Gujarati" '((charset unicode)
78 (#x0000 . cdac:dv-ttsurekh) ; hindi, etc 79 (coding-system utf-8)
79 (#x0100 . cdac:sd-ttsurekh) ; sanskrit 80 (coding-priority utf-8)
80 (#x0200 . cdac:bn-ttdurga) ; bengali 81 (input-method . "gujarati-itrans")
81 (#x0300 . cdac:tm-ttvalluvar) ; tamil 82 (documentation . "\
82 (#x0400 . cdac:tl-tthemalatha) ; telugu 83North Indian language Gujarati is supported in this language environment."))
83 (#x0500 . cdac:as-ttdurga) ; assamese 84 '("Indian"))
84 (#x0600 . cdac:or-ttsarala) ; oriya 85
85 (#x0700 . cdac:kn-ttuma) ; kannada 86(set-language-info-alist
86 (#x0800 . cdac:ml-ttkarthika) ; malayalam 87 "Oriya" '((charset unicode)
87 (#x0900 . cdac:gj-ttavantika) ; gujarati 88 (coding-system utf-8)
88 (#x0A00 . cdac:pn-ttamar) ; punjabi 89 (coding-priority utf-8)
89 90 (input-method . "oriya-itrans")
90 ;; AKRUTI fonts 91 (documentation . "\
91 (#x0B00 . akruti:dev) ; hindi, etc 92Such languages using Oriya script as Oriya, Khonti, and Santali
92 (#x0C00 . akruti:bng) ; bengali 93are supported in this language environment."))
93 (#x0D00 . akruti:pnj) ; punjabi 94 '("Indian"))
94 (#x0E00 . akruti:guj) ; gujarati 95
95 (#x0F00 . akruti:ori) ; oriya 96(set-language-info-alist
96 (#x1000 . akruti:tml) ; tamil 97 "Tamil" '((charset unicode)
97 (#x1100 . akruti:tlg) ; telugu 98 (coding-system utf-8)
98 (#x1200 . akruti:knd) ; kannada 99 (coding-priority utf-8)
99 (#x1300 . akruti:mal) ; malayalam 100 (input-method . "tamil-itrans")
100 ) 101 (documentation . "\
101 "Alist of indices of `indian-glyph' character vs Indian font identifiers. 102South Indian Language Tamil is supported in this language environment."))
102Each element has this form: (INDEX . FONT-IDENTIFIER) 103 '("Indian"))
103 104
104INDEX is an index number of the first character in the charset 105(set-language-info-alist
105`indian-glyph' assigned for glyphs in the font specified by 106 "Telugu" '((charset unicode)
106FONT-IDENTIFIER. Currently FONT-IDENTIFIERs are defined for CDAC 107 (coding-system utf-8)
107and AKRUTI font groups.") 108 (coding-priority utf-8)
108 109 (input-method . "telugu-itrans")
109(defun indian-font-char (index font-identifier) 110 (documentation . "\
110 "Return character of charset `indian-glyph' made from glyph index INDEX. 111South Indian Language Telugu is supported in this language environment."))
111FONT-IDENTIFIER is an identifier of an Indian font listed in the 112 '("Indian"))
112variable `indian-font-char-index-table'. It specifies which 113
113font INDEX is for." 114(set-language-info-alist
114 (if (or (< index 0) (> index 255)) 115 "Kannada" '((charset unicode)
115 (error "Invalid glyph index: %d" index)) 116 (coding-system mule-utf-8)
116 (let ((start (car (rassq font-identifier indian-font-char-index-table)))) 117 (coding-priority mule-utf-8)
117 (if (not start) 118 (input-method . "kannada-itrans")
118 (error "Unknown font identifier: %s" font-identifier)) 119 (sample-text . "Kannada (ಕನ್ನಡ) ನಮಸ್ಕಾರ")
119 (setq index (+ start index)) 120 (documentation . "\
120 (make-char 'indian-glyph (+ (/ index 96) 32) (+ (% index 96) 32)))) 121Kannada language and script is supported in this language
121 122environment."))
122;; Return a range of characters (cons of min and max character) of the 123 '("Indian"))
123;; charset `indian-glyph' for displaying SCRIPT in LANGUAGE by a font 124
124;; of FOUNDRY. 125(set-language-info-alist
125 126 "Malayalam" '((charset unicode)
126(defun indian-font-char-range (font-identifier) 127 (coding-system utf-8)
127 (cons (indian-font-char 0 font-identifier) 128 (coding-priority utf-8)
128 (indian-font-char 255 font-identifier))) 129 (input-method . "malayalam-itrans")
129 130 (documentation . "\
130(defvar indian-script-table 131South Indian language Malayalam is supported in this language environment."))
131 '[ 132 '("Indian"))
132 devanagari
133 sanskrit
134 bengali
135 tamil
136 telugu
137 assamese
138 oriya
139 kannada
140 malayalam
141 gujarati
142 punjabi
143 ]
144 "Vector of Indian script names.")
145
146(let ((len (length indian-script-table))
147 (i 0))
148 (while (< i len)
149 (put (aref indian-script-table i) 'indian-glyph-code-offset (* 256 i))
150 (setq i (1+ i))))
151
152(defvar indian-default-script 'devanagari
153 "Default script for Indian languages.
154Each Indian language environment sets this value
155to one of `indian-script-table' (which see).
156The default value is `devanagari'.")
157
158(defvar indian-composable-pattern
159 (make-char-table nil)
160 "Char table of regexps for composable Indian character sequence.")
161 133
162(let ((script-regexp-alist 134(let ((script-regexp-alist
163 '((devanagari . "[\x900-\x9FF\x200C\x200D]+") 135 '((devanagari . "[\x900-\x9FF\x200C\x200D]+")
@@ -168,8 +140,7 @@ The default value is `devanagari'.")
168 (tamil . "[\xB80-\xBFF\x200C\x200D]+") 140 (tamil . "[\xB80-\xBFF\x200C\x200D]+")
169 (telugu . "[\xC00-\xC7F\x200C\x200D]+") 141 (telugu . "[\xC00-\xC7F\x200C\x200D]+")
170 (kannada . "[\xC80-\xCFF\x200C\x200D]+") 142 (kannada . "[\xC80-\xCFF\x200C\x200D]+")
171 (malayalam . "[\xD00-\xD7F\x200C\x200D]+") 143 (malayalam . "[\xD00-\xD7F\x200C\x200D]+"))))
172 (sinhala . "[\xD80-\xDFF\x200C\x200D]+"))))
173 (map-char-table #'(lambda (key val) 144 (map-char-table #'(lambda (key val)
174 (let ((slot (assq val script-regexp-alist))) 145 (let ((slot (assq val script-regexp-alist)))
175 (if slot 146 (if slot
@@ -177,7 +148,6 @@ The default value is `devanagari'.")
177 composition-function-table key 148 composition-function-table key
178 (list (cons (cdr slot) 'font-shape-text)))))) 149 (list (cons (cdr slot) 'font-shape-text))))))
179 char-script-table)) 150 char-script-table))
180
181 151
182(provide 'indian) 152(provide 'indian)
183 153