Commit | Line | Data |
---|---|---|
3978dec0 | 1 | ;;; indian.el --- Quail packages for inputting Indian |
c6974daa | 2 | |
95df8112 | 3 | ;; Copyright (C) 2000-2011 Free Software Foundation, Inc. |
c6974daa RS |
4 | |
5 | ;; Author: KAWABATA, Taichi <kawabata@m17n.org> | |
6 | ||
7 | ;; Keywords: multilingual, input method, Indian, Devanagari | |
8 | ||
9 | ;; This file is part of GNU Emacs. | |
10 | ||
3d544458 | 11 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
c6974daa | 12 | ;; it under the terms of the GNU General Public License as published by |
3d544458 GM |
13 | ;; the Free Software Foundation, either version 3 of the License, or |
14 | ;; (at your option) any later version. | |
c6974daa RS |
15 | |
16 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | ;; GNU General Public License for more details. | |
20 | ||
21 | ;; You should have received a copy of the GNU General Public License | |
3d544458 | 22 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
c6974daa RS |
23 | |
24 | ;;; Commentary: | |
25 | ||
26 | ;; History: | |
27 | ||
96566974 DL |
28 | ;; 2000.12.12 |
29 | ;; Totally re-written from devanagari.el to handle multiple Indian Scripts. | |
c6974daa RS |
30 | |
31 | ;;; Code: | |
32 | ||
c6974daa | 33 | (require 'quail) |
c6974daa | 34 | (require 'ind-util) |
c6974daa RS |
35 | |
36 | ;;; | |
37 | ;;; Input by transliteration | |
38 | ;;; | |
39 | ||
40 | (defun quail-define-indian-trans-package (hashtbls pkgname | |
41 | lang title doc) | |
42 | (funcall 'quail-define-package pkgname lang title t doc | |
4b379330 | 43 | nil nil nil nil nil nil t nil) |
96566974 | 44 | (maphash |
7f93e2ab DL |
45 | (lambda (key val) |
46 | (quail-defrule key (if (= (length val) 1) | |
47 | (string-to-char val) | |
48 | (vector val)))) | |
c6974daa RS |
49 | (cdr hashtbls))) |
50 | ||
dfafefa1 EZ |
51 | ;; This needs to be seen by quail-update-leim-list-file, but cannot be |
52 | ;; commented out because quail-update-leim-list-file ignores | |
53 | ;; commented-out lines. | |
54 | (if nil | |
55 | (quail-define-package "devanagari-itrans" "Devanagari" "DevIT" t "Devanagari ITRANS")) | |
c6974daa RS |
56 | (quail-define-indian-trans-package |
57 | indian-dev-itrans-v5-hash "devanagari-itrans" "Devanagari" "DevIT" | |
58 | "Devanagari transliteration by ITRANS method.") | |
59 | ||
dfafefa1 EZ |
60 | (if nil |
61 | (quail-define-package "devanagari-kyoto-harvard" "Devanagari" "DevKH" t "Devanagari Kyoto-Harvard")) | |
c6974daa RS |
62 | (quail-define-indian-trans-package |
63 | indian-dev-kyoto-harvard-hash | |
64 | "devanagari-kyoto-harvard" "Devanagari" "DevKH" | |
65 | "Devanagari transliteration by Kyoto-Harvard method.") | |
66 | ||
dfafefa1 EZ |
67 | (if nil |
68 | (quail-define-package "devanagari-aiba" "Devanagari" "DevAB" t "Devanagari Aiba")) | |
c6974daa RS |
69 | (quail-define-indian-trans-package |
70 | indian-dev-aiba-hash "devanagari-aiba" "Devanagari" "DevAB" | |
71 | "Devanagari transliteration by Aiba-method.") | |
72 | ||
32103956 KH |
73 | (if nil |
74 | (quail-define-package "punjabi-itrans" "Punjabi" "PnjIT" t "Punjabi ITRANS")) | |
75 | (quail-define-indian-trans-package | |
76 | indian-pnj-itrans-v5-hash "punjabi-itrans" "Punjabi" "PnjIT" | |
77 | "Punjabi transliteration by ITRANS method.") | |
78 | ||
79 | (if nil | |
80 | (quail-define-package "gujarati-itrans" "Gujarati" "GjrIT" t "Gujarati ITRANS")) | |
81 | (quail-define-indian-trans-package | |
82 | indian-gjr-itrans-v5-hash "gujarati-itrans" "Gujarati" "GjrIT" | |
83 | "Gujarati transliteration by ITRANS method.") | |
84 | ||
85 | (if nil | |
86 | (quail-define-package "oriya-itrans" "Oriya" "OriIT" t "Oriya ITRANS")) | |
87 | (quail-define-indian-trans-package | |
88 | indian-ori-itrans-v5-hash "oriya-itrans" "Oriya" "OriIT" | |
89 | "Oriya transliteration by ITRANS method.") | |
90 | ||
91 | (if nil | |
92 | (quail-define-package "bengali-itrans" "Bengali" "BngIT" t "Bengali ITRANS")) | |
93 | (quail-define-indian-trans-package | |
94 | indian-bng-itrans-v5-hash "bengali-itrans" "Bengali" "BngIT" | |
95 | "Bengali transliteration by ITRANS method.") | |
96 | ||
97 | (if nil | |
98 | (quail-define-package "assamese-itrans" "Assamese" "AsmIT" t "Assamese ITRANS")) | |
99 | (quail-define-indian-trans-package | |
100 | indian-asm-itrans-v5-hash "assamese-itrans" "Assamese" "AsmIT" | |
101 | "Assamese transliteration by ITRANS method.") | |
102 | ||
103 | (if nil | |
104 | (quail-define-package "telugu-itrans" "Telugu" "TlgIT" t "Telugu ITRANS")) | |
105 | (quail-define-indian-trans-package | |
106 | indian-tlg-itrans-v5-hash "telugu-itrans" "Telugu" "TlgIT" | |
107 | "Telugu transliteration by ITRANS method.") | |
108 | ||
109 | (if nil | |
110 | (quail-define-package "kannada-itrans" "Kannada" "KndIT" t "Kannada ITRANS")) | |
111 | (quail-define-indian-trans-package | |
112 | indian-knd-itrans-v5-hash "kannada-itrans" "Kannada" "KndIT" | |
113 | "Kannada transliteration by ITRANS method.") | |
114 | ||
115 | (if nil | |
116 | (quail-define-package "malayalam-itrans" "Malayalam" "MlmIT" t "Malayalam ITRANS")) | |
117 | (quail-define-indian-trans-package | |
118 | indian-mlm-itrans-v5-hash "malayalam-itrans" "Malayalam" "MlmIT" | |
119 | "Malayalam transliteration by ITRANS method.") | |
120 | ||
121 | (if nil | |
122 | (quail-define-package "tamil-itrans" "Tamil" "TmlIT" t "Tamil ITRANS")) | |
123 | (quail-define-indian-trans-package | |
124 | indian-tml-itrans-v5-hash "tamil-itrans" "Tamil" "TmlIT" | |
125 | "Tamil transliteration by ITRANS method.") | |
126 | ||
127 | ||
c6974daa RS |
128 | ;;; |
129 | ;;; Input by Inscript | |
130 | ;;; | |
131 | ||
e5dfa240 KH |
132 | (defun quail-define-inscript-package (char-tables key-tables pkgname lang |
133 | title docstring) | |
c6974daa | 134 | (funcall 'quail-define-package pkgname lang title nil docstring |
4b379330 | 135 | nil nil nil nil nil nil nil nil) |
e5dfa240 KH |
136 | (let (char-table key-table char key) |
137 | (while (and char-tables key-tables) | |
138 | (setq char-table (car char-tables) | |
139 | char-tables (cdr char-tables) | |
140 | key-table (car key-tables) | |
141 | key-tables (cdr key-tables)) | |
142 | (while (and char-table key-table) | |
143 | (setq char (car char-table) | |
144 | char-table (cdr char-table) | |
145 | key (car key-table) | |
146 | key-table (cdr key-table)) | |
147 | (if (and (consp char) (consp key)) | |
148 | (setq char-table (append char char-table) | |
149 | key-table (append key key-table)) | |
150 | (if (and key char) | |
151 | (quail-defrule | |
152 | (if (characterp key) (char-to-string key) key) | |
153 | (if (stringp char) (vector char) char)))))))) | |
c6974daa RS |
154 | |
155 | ;; | |
156 | ||
157 | (defvar inscript-dev-keytable | |
158 | '( | |
159 | (;; VOWELS (18) | |
160 | (?D nil) (?E ?e) (?F ?f) (?R ?r) (?G ?g) (?T ?t) | |
161 | (?+ ?=) ("F]" "f]") (?! ?@) (?Z ?z) (?S ?s) (?W ?w) | |
162 | (?| ?\\) (?~ ?`) (?A ?a) (?Q ?q) ("+]" "=]") ("R]" "r]")) | |
163 | (;; CONSONANTS (42) | |
164 | ?k ?K ?i ?I ?U ;; GRUTTALS | |
96566974 DL |
165 | ?\; ?: ?p ?P ?} ;; PALATALS |
166 | ?' ?\" ?\[ ?{ ?C ;; CEREBRALS | |
167 | ?l ?L ?o ?O ?v ?V ;; DENTALS | |
168 | ?h ?H ?y ?Y ?c ;; LABIALS | |
c6974daa | 169 | ?/ ?j ?J ?n ?N "N]" ?b ;; SEMIVOWELS |
96566974 DL |
170 | ?M ?< ?m ?u ;; SIBILANTS |
171 | "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS | |
c6974daa | 172 | ?% ?&) |
96566974 | 173 | (;; Misc Symbols (7) |
c6974daa RS |
174 | ?X ?x ?_ ">]" ?d "X]" ?>) |
175 | (;; Digits | |
176 | ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9) | |
177 | (;; Inscripts | |
178 | ?# ?$ ?^ ?* ?\]))) | |
179 | ||
09c91aff KH |
180 | (defvar inscript-mlm-keytable |
181 | '( | |
182 | (;; VOWELS (18) | |
183 | (?D nil) (?E ?e) (?F ?f) (?R ?r) (?G ?g) (?T ?t) | |
184 | (?+ ?=) ("F]" "f]") (?! ?@) (?S ?s) (?Z ?z) (?W ?w) | |
185 | (?| ?\\) (?~ ?`) (?A ?a) (?Q ?q) ("+]" "=]") ("R]" "r]")) | |
186 | (;; CONSONANTS (42) | |
187 | ?k ?K ?i ?I ?U ;; GRUTTALS | |
188 | ?\; ?: ?p ?P ?} ;; PALATALS | |
189 | ?' ?\" ?\[ ?{ ?C ;; CEREBRALS | |
190 | ?l ?L ?o ?O ?v ?V ;; DENTALS | |
191 | ?h ?H ?y ?Y ?c ;; LABIALS | |
192 | ?/ ?j ?J ?n ?N "N]" ?b ;; SEMIVOWELS | |
193 | ?M ?< ?m ?u ;; SIBILANTS | |
194 | "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS | |
195 | ?% ?&) | |
196 | (;; Misc Symbols (7) | |
197 | ?X ?x ?_ ">]" ?d "X]" ?>) | |
198 | (;; Digits | |
199 | ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9) | |
200 | (;; Inscripts | |
201 | ?# ?$ ?^ ?* ?\]))) | |
202 | ||
e5dfa240 KH |
203 | (defvar inscript-tml-keytable |
204 | '( | |
205 | (;; VOWELS (18) | |
206 | (?D nil) (?E ?e) (?F ?f) (?R ?r) (?G ?g) (?T ?t) | |
207 | nil nil nil (?S ?s) (?Z ?z) (?W ?w) | |
208 | nil (?A ?a) (?~ ?`) (?Q ?q) nil nil) | |
209 | (;; CONSONANTS (42) | |
210 | ?k ?K ?i ?I ?U ;; GRUTTALS | |
211 | ?\; ?: ?p ?P ?} ;; PALATALS | |
212 | ?' ?\" ?\[ ?{ ?C ;; CEREBRALS | |
213 | ?l ?L ?o ?O ?v ?V ;; DENTALS | |
214 | ?h ?H ?y ?Y ?c ;; LABIALS | |
215 | ?/ ?j ?J ?n ?N "N]" ?b ;; SEMIVOWELS | |
216 | ?M ?< ?m ?u ;; SIBILANTS | |
217 | "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS | |
218 | ?% ?&) | |
219 | (;; Misc Symbols (7) | |
220 | ?X ?x ?_ ">]" ?d "X]" ?>) | |
221 | (;; Digits | |
222 | ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9) | |
223 | (;; Inscripts | |
224 | ?# ?$ ?^ ?* ?\]))) | |
225 | ||
dfafefa1 EZ |
226 | (if nil |
227 | (quail-define-package "devanagari-inscript" "Devanagari" "DevIS" t "Devanagari keyboard Inscript")) | |
96566974 | 228 | (quail-define-inscript-package |
c6974daa RS |
229 | indian-dev-base-table inscript-dev-keytable |
230 | "devanagari-inscript" "Devanagari" "DevIS" | |
231 | "Devanagari keyboard Inscript.") | |
232 | ||
32103956 KH |
233 | (if nil |
234 | (quail-define-package "punjabi-inscript" "Punjabi" "PnjIS" t "Punjabi keyboard Inscript")) | |
235 | (quail-define-inscript-package | |
236 | indian-pnj-base-table inscript-dev-keytable | |
237 | "punjabi-inscript" "Punjabi" "PnjIS" | |
238 | "Punjabi keyboard Inscript.") | |
239 | ||
240 | (if nil | |
241 | (quail-define-package "gujarati-inscript" "Gujarati" "GjrIS" t "Gujarati keyboard Inscript")) | |
242 | (quail-define-inscript-package | |
243 | indian-gjr-base-table inscript-dev-keytable | |
244 | "gujarati-inscript" "Gujarati" "GjrIS" | |
245 | "Gujarati keyboard Inscript.") | |
246 | ||
247 | (if nil | |
248 | (quail-define-package "oriya-inscript" "Oriya" "OriIS" t "Oriya keyboard Inscript")) | |
249 | (quail-define-inscript-package | |
250 | indian-ori-base-table inscript-dev-keytable | |
251 | "oriya-inscript" "Oriya" "OriIS" | |
252 | "Oriya keyboard Inscript.") | |
253 | ||
254 | (if nil | |
255 | (quail-define-package "bengali-inscript" "Bengali" "BngIS" t "Bengali keyboard Inscript")) | |
256 | (quail-define-inscript-package | |
257 | indian-bng-base-table inscript-dev-keytable | |
258 | "bengali-inscript" "Bengali" "BngIS" | |
259 | "Bengali keyboard Inscript.") | |
260 | ||
261 | (if nil | |
262 | (quail-define-package "assamese-inscript" "Assamese" "AsmIS" t "Assamese keyboard Inscript")) | |
263 | (quail-define-inscript-package | |
264 | indian-asm-base-table inscript-dev-keytable | |
265 | "assamese-inscript" "Assamese" "AsmIS" | |
266 | "Assamese keyboard Inscript.") | |
267 | ||
268 | (if nil | |
269 | (quail-define-package "telugu-inscript" "Telugu" "TlgIS" t "Telugu keyboard Inscript")) | |
270 | (quail-define-inscript-package | |
271 | indian-dev-base-table inscript-dev-keytable | |
272 | "telugu-inscript" "Telugu" "TlgIS" | |
273 | "Telugu keyboard Inscript.") | |
274 | ||
275 | (if nil | |
276 | (quail-define-package "kannada-inscript" "Kannada" "KndIS" t "Kannada keyboard Inscript")) | |
277 | (quail-define-inscript-package | |
278 | indian-knd-base-table inscript-dev-keytable | |
279 | "kannada-inscript" "Kannada" "KndIS" | |
280 | "Kannada keyboard Inscript.") | |
281 | ||
282 | (if nil | |
283 | (quail-define-package "malayalam-inscript" "Malayalam" "MlmIS" t "Malayalam keyboard Inscript")) | |
284 | (quail-define-inscript-package | |
09c91aff | 285 | indian-mlm-base-table inscript-mlm-keytable |
32103956 KH |
286 | "malayalam-inscript" "Malayalam" "MlmIS" |
287 | "Malayalam keyboard Inscript.") | |
288 | ||
289 | (if nil | |
290 | (quail-define-package "tamil-inscript" "Tamil" "TmlIS" t "Tamil keyboard Inscript")) | |
291 | (quail-define-inscript-package | |
e5dfa240 | 292 | indian-tml-base-table inscript-tml-keytable |
32103956 KH |
293 | "tamil-inscript" "Tamil" "TmlIS" |
294 | "Tamil keyboard Inscript.") | |
295 | ||
3978dec0 | 296 | ;;; indian.el ends here |