Commit | Line | Data |
---|---|---|
4b725a70 | 1 | ;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: utf-8-emacs;-*- |
2cd1b939 | 2 | |
ab422c4d | 3 | ;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc. |
03ba6797 | 4 | ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, |
5df4f04c | 5 | ;; 2006, 2007, 2008, 2009, 2010, 2011 |
698218a2 KH |
6 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
7 | ;; Registration Number H14PRO021 | |
2cd1b939 KH |
8 | |
9 | ;; Keywords: multilingual, input method, Tibetan | |
10 | ||
11 | ;; This file is part of GNU Emacs. | |
12 | ||
3d544458 | 13 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
2cd1b939 | 14 | ;; it under the terms of the GNU General Public License as published by |
3d544458 GM |
15 | ;; the Free Software Foundation, either version 3 of the License, or |
16 | ;; (at your option) any later version. | |
2cd1b939 KH |
17 | |
18 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
19 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 | ;; GNU General Public License for more details. | |
22 | ||
23 | ;; You should have received a copy of the GNU General Public License | |
3d544458 | 24 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
2cd1b939 KH |
25 | |
26 | ;; Author: Toru TOMABECHI, <Toru.Tomabechi@orient.unil.ch> | |
27 | ||
28 | ;; Created: Feb. 17. 1997 | |
29 | ||
30 | ;; History: | |
e4920bc9 | 31 | ;; 1997.03.13 Support for inputting special signs and punctuation added. |
2cd1b939 KH |
32 | ;; (Only Ext. Wylie input) |
33 | ||
be567141 PJ |
34 | ;;; Commentary: |
35 | ||
2cd1b939 KH |
36 | ;;; Code: |
37 | ||
38 | (require 'quail) | |
653b6bad KH |
39 | (require 'tibet-util) |
40 | ||
41 | ;; Now quail-current-key is set to Tibetan-Roman transcription. We | |
42 | ;; set quail-current-str to the corresponding Tibetan string (composed | |
43 | ;; if necessary). Both Wylie and TibKey input methods use this | |
44 | ;; function. | |
45 | ||
46 | (defun quail-tibetan-update-translation (control-flag) | |
47 | (if (numberp control-flag) | |
48 | ;; Non-composable-character typed. | |
49 | (setq quail-current-str | |
50 | (buffer-substring (overlay-start quail-overlay) | |
51 | (overlay-end quail-overlay)) | |
52 | unread-command-events | |
53 | (string-to-list | |
54 | (substring quail-current-key control-flag))) | |
55 | ;; Special treatment of "-d..." and "-y...". | |
56 | (if (string-match "^-[dy]" quail-current-key) | |
57 | (setq quail-current-key (substring quail-current-key 1))) | |
58 | (let ((str (tibetan-transcription-to-tibetan quail-current-key))) | |
e4920bc9 | 59 | ;; If quail-current-key is for punctuation, it can't be |
653b6bad KH |
60 | ;; transcribed by tibetan-transcription-to-tibetan, thus STR |
61 | ;; contains ASCII string now. In that case, use the current | |
62 | ;; characters set in quail-current-str. | |
63 | (if (> (aref str 0) 255) | |
64 | (setq quail-current-str (tibetan-compose-string str)) | |
65 | (or quail-current-str | |
66 | (setq quail-current-str quail-current-key))))) | |
67 | control-flag) | |
68 | ||
69 | ;;; Wylie transcription based input methods. | |
70 | ||
4b725a70 | 71 | ;; Special alist for `འ'. It must be treated as a subjoined |
653b6bad | 72 | ;; consonant if it follows a consonant. |
cc7d79ad KH |
73 | ;; * Removed by Tomabechi 2000/06/10 * |
74 | ;; 'a chung must be explicitly typed as a vowel ("fa") | |
4b725a70 PE |
75 | ;; འ is now treated as normal base consonants |
76 | ;; (defconst tibetan-wylie-quote-alist '(("'" . ?འ))) | |
653b6bad KH |
77 | |
78 | ;; Special alist to avoid default stacking. | |
79 | (defconst tibetan-wylie-non-stacking-alist | |
4b725a70 PE |
80 | '(("-d" . "ད") |
81 | ("-y" . "ཡ"))) | |
653b6bad | 82 | |
e4920bc9 | 83 | ;; Punctuation characters are not transcribed. |
653b6bad KH |
84 | |
85 | (defconst tibetan-wylie-punctuation-alist | |
86 | '(("." . " ") | |
4b725a70 PE |
87 | (":" . "ཿ") |
88 | (" " . "་") | |
89 | ("/" . "།") | |
90 | ("//" . "༎") | |
91 | ("////" . ["༎ ༎"]) | |
92 | ("$" . "༏") | |
93 | ("/\"" . "༐") ; Not defined in Ext. Wylie. | |
94 | ("&" . "༐") | |
95 | (";" . "༑") | |
96 | ("%" . "༔") | |
97 | ("!" . "༈") | |
98 | ("<" . "༼") | |
99 | (">" . "༽") | |
100 | ("@" . "྅") | |
101 | ("*" . ["༄༅"]) | |
102 | ("#" . ["༄༅༅"]) | |
103 | ("^" . "༆") | |
104 | ("0" . "༠") | |
105 | ("1" . "༡") | |
106 | ("2" . "༢") | |
107 | ("3" . "༣") | |
108 | ("4" . "༤") | |
109 | ("5" . "༥") | |
110 | ("6" . "༦") | |
111 | ("7" . "༧") | |
112 | ("8" . "༨") | |
113 | ("9" . "༩") | |
114 | ("-0" . "༳") | |
115 | ("-1" . "༪") | |
116 | ("-2" . "༫") | |
117 | ("-3" . "༬") | |
118 | ("-4" . "༭") | |
119 | ("-5" . "༮") | |
120 | ("-6" . "༯") | |
121 | ("-7" . "༰") | |
122 | ("-8" . "༱") | |
123 | ("-9" . "༲") | |
124 | ("|" . "ༀ༁༂༃༇༉༊༒༓༕༖༗༘༙༚༛༜༝༞༟༴༶༸༺༻༾༿྾྿࿀࿁࿂࿃࿄࿅࿆࿇࿈࿉࿊࿋࿌࿏"))) | |
2cd1b939 KH |
125 | |
126 | (quail-define-package "tibetan-wylie" "Tibetan" "TIBw" t | |
127 | "Tibetan character input by Extended Wylie key assignment. | |
128 | ||
129 | +-------------------------------------+ | |
4b725a70 PE |
130 | |ཀ་ k |ཁ་ kh |ག་ g |གྷ་ gh |ང་ ng| ི i ། / |
131 | |ཅ་ c |ཆ་ ch |ཇ་ j | |ཉ་ ny| ུ u ༎ // | |
132 | |ཊ་ T |ཋ་ TH |ཌ་ D |ཌྷ་ DH |ཎ་ N | ེ e ༎ ༎ //// | |
133 | |ཏ་ t |ཐ་ th |ད་ d |དྷ་ dh |ན་ n | ོ o ༑ ; | |
134 | |པ་ p |ཕ་ ph |བ་ b |བྷ་ bh |མ་ m | ཻ ai (ee, E) ༏ $ | |
135 | |ཙ་ ts|ཚ་ tsh|ཛ་ dz |ཛྷ་ dzh|ཝ་ w | ཽ au (oo, O) ༐ & | |
136 | |ཞ་ zh|ཟ་ z |འ་ ' | |ཡ་ y | ྀ I ༄༅ * | |
137 | |ར་ r |ལ་ l |ཤ་ sh |ཥ་ SH |ས་ s | ཿ : ༄༅༅ # | |
138 | |ཧ་ h |ཨ་ A |ཀྵ་ kSH| | | ཾ M ༼ ༽ < > | |
139 | +-------------------------------------+ ༔ % | |
140 | (The consonant ཨ་ must be typed explicitly.) | |
2cd1b939 KH |
141 | |
142 | NOT SPECIFIED IN EXT. WYLIE: | |
143 | +--------------------------------------------------------+ | |
4b725a70 | 144 | |ྂ = ~ |ྃ = ` |྄ = , |྅ = @ |༷ = _o|༵ = _O|༆ = ^| |
2cd1b939 | 145 | +--------------------------------------------------------+ |
4b725a70 | 146 | |ྈ = x |ྉ = X |྆ = v |྇ = V |ྊ = q |ྋ = Q | |
2cd1b939 KH |
147 | +-----------------------------------------------+ |
148 | ||
149 | SPECIAL KEYS | |
150 | + : Consonant Stacking | |
e67e483f | 151 | (Consonant stacking for ordinary Tibetan is done automatically) |
2cd1b939 | 152 | - : No Consonant Stacking |
e67e483f | 153 | (To suppress automatic stacking for \"g-y\", |
2cd1b939 KH |
154 | and to get da-drag in -r-d, -l-d .) |
155 | | : Special signs. | |
156 | ||
e67e483f | 157 | Tsheg is assigned to SPC. Space is assigned to period '.'. |
2cd1b939 | 158 | " |
653b6bad KH |
159 | nil nil nil nil nil nil nil nil |
160 | 'quail-tibetan-update-translation) | |
161 | ||
22bcf204 | 162 | ;; Here we build up a Quail map for a Tibetan sequence the whole of |
653b6bad KH |
163 | ;; which can be one composition. |
164 | ;; | |
165 | ;; A Tibetan syllable is typically structured as follows: | |
166 | ;; [P] C [c+] V [M] [S [s]] | |
167 | ;; ^^^^^^^^^^^^ | |
168 | ;; where P:prefix, C:base consonant, c:subjoined consonant, | |
169 | ;; V:vowel, M:vowel modifier, S:suffix, s:post suffix. | |
170 | ;; In this pattern, the part indicated by "^^^" can be one composition. | |
171 | ||
cc7d79ad KH |
172 | ;;; modified by Tomabechi 1999/12/10 |
173 | ;;; modified by Tomabechi 2000/06/08 | |
174 | ;;; Allows infinite addition of vowels/modifiers | |
175 | ;;; as specified in Unicode v.3 | |
653b6bad KH |
176 | (quail-install-map |
177 | (quail-map-from-table | |
cc7d79ad KH |
178 | '((base-state (tibetan-consonant-transcription-alist . svm-state) |
179 | (tibetan-precomposed-transcription-alist . svm-state) | |
180 | (tibetan-wylie-non-stacking-alist . svm-state) | |
653b6bad KH |
181 | tibetan-subjoined-transcription-alist |
182 | tibetan-vowel-transcription-alist | |
183 | tibetan-modifier-transcription-alist | |
184 | tibetan-wylie-punctuation-alist) | |
cc7d79ad KH |
185 | (svm-state ;;(tibetan-wylie-quote-alist . vm-state) |
186 | (tibetan-vowel-transcription-alist . vm-state) | |
187 | (tibetan-subjoined-transcription-alist . svm-state) | |
188 | (tibetan-modifier-transcription-alist . m-state)) | |
189 | (vm-state (tibetan-vowel-transcription-alist . vm-state) | |
190 | (tibetan-modifier-transcription-alist . m-state)) | |
191 | (m-state (tibetan-modifier-transcription-alist . m-state))))) | |
2cd1b939 KH |
192 | |
193 | ;;; | |
653b6bad | 194 | ;;; TibKey key alignment based input method |
2cd1b939 KH |
195 | ;;; |
196 | ||
197 | (defconst tibetan-tibkey-to-transcription-alist | |
653b6bad | 198 | '(;; consonant |
2cd1b939 KH |
199 | ("`" . "`") ; sna ldan |
200 | ("~" . "~") ; sna ldan + nada | |
201 | ("q" . "k") ; ka | |
202 | ("Q" ."kSH") ; kSHa | |
203 | ("w" . "kh") ; kha | |
204 | ("e" . "g") ; ga | |
205 | ("r" . "ng") ; nga | |
206 | ("t" . "c") ; ca | |
207 | ("T" . "I") ; gi gu log | |
208 | ("y" . "ch") ; cha | |
209 | ("u" . "j") ; ja | |
210 | ("i" . "ny") ; nya | |
211 | ("o" . "t") ; ta | |
212 | ("O" . "T") ; Ta | |
213 | ("p" . "th") ; tha | |
214 | ("P" . "TH") ; THa | |
177c0ea7 | 215 | ("[" . "d") ; da |
2cd1b939 KH |
216 | ("{" . "D") ; Da |
217 | ("]" . "n") ; na | |
218 | ("}" . "N") ; Na | |
219 | ("a" . "p") ; pa | |
220 | ("A" . "a") ; Vowel a (not used in original TibKey) | |
221 | ("s" . "ph") ; pha | |
222 | ("d" . "b") ; ba | |
223 | ("f" . "m") ; ma | |
224 | ("F" . "M") ; anusvara | |
225 | ("g" . "u") ; zhabs kyu | |
226 | ("G" . "i") ; gi gu | |
22bcf204 | 227 | ("H" . ",") ; virama |
2cd1b939 KH |
228 | ("j" . "o") ; naro |
229 | ("J" . "e") ; 'greng bu | |
230 | ("k" . "ts") ; tsa | |
231 | ("l" . "tsh") ; tsha | |
232 | (";" . "dz") ; dza | |
233 | ("'" . "w") ; wa | |
234 | ("\"" . "+w") ; wa zur | |
235 | ("z" . "zh") ; zha | |
236 | ("x" . "z") ; za | |
237 | ("c" . "'") ; 'a | |
238 | ("C" . "+'") ; 'a chung | |
239 | ("v" . "y") ; ya | |
240 | ("V" . "+y") ; ya btags | |
241 | ("b" . "r") ; ra | |
242 | ("B" . "+r") ; ra btags | |
243 | ("n" . "l") ; la | |
244 | ("N" . "+l") ; la btags | |
245 | ("m" . "sh") ; sha | |
246 | ("M" . "SH") ; SHa | |
247 | ("," . "s") ; sa | |
248 | ("." . "h") ; ha | |
249 | ("/" . "A") ; Aa | |
653b6bad | 250 | ;; subjoined |
2cd1b939 KH |
251 | ("hq" . "+k") ; ka |
252 | ("hQ" ."+kSH") ; kSHa | |
253 | ("hw" . "+kh") ; kha | |
254 | ("he" . "+g") ; ga | |
255 | ("hr" . "+ng") ; nga | |
256 | ("ht" . "+c") ; ca | |
257 | ("hy" . "+ch") ; cha | |
258 | ("hu" . "+j") ; ja | |
259 | ("hi" . "+ny") ; nya | |
260 | ("ho" . "+t") ; ta | |
261 | ("hO" . "+T") ; Ta | |
262 | ("hp" . "+th") ; tha | |
263 | ("hP" . "+TH") ; THa | |
177c0ea7 | 264 | ("h[" . "+d") ; da |
2cd1b939 KH |
265 | ("h{" . "+D") ; Da |
266 | ("h]" . "+n") ; na | |
267 | ("h}" . "+N") ; Na | |
177c0ea7 | 268 | ("ha" . "+p") ; pa |
2cd1b939 KH |
269 | ("hs" . "+ph") ; pha |
270 | ("hd" . "+b") ; ba | |
271 | ("hf" . "+m") ; ma | |
272 | ("hk" . "+ts") ; tsa | |
273 | ("hl" . "+tsh") ; tsha | |
274 | ("h;" . "+dz") ; dza | |
275 | ("h'" . "+w") ; wa | |
276 | ("hz" . "+zh") ; zha | |
277 | ("hx" . "+z") ; za | |
278 | ("hc" . "+'") ; 'a | |
279 | ("hv" . "+y") ; ya | |
280 | ("hb" . "+r") ; ra | |
281 | ("hn" . "+l") ; la | |
282 | ("hm" . "+sh") ; sha | |
283 | ("hM" . "+SH") ; SHa | |
284 | ("h," . "+s") ; sa | |
285 | ("h." . "+h") ; ha | |
286 | ("h/" . "+A") ; Aa | |
4b725a70 | 287 | ;; Special rule for `ཡ' to avoid stacking. |
653b6bad | 288 | ("E" . "-y") |
2cd1b939 KH |
289 | )) |
290 | ||
653b6bad KH |
291 | (defconst tibetan-consonant-tibkey-alist nil) |
292 | (defconst tibetan-subjoined-tibkey-alist nil) | |
293 | (defconst tibetan-vowel-tibkey-alist nil) | |
294 | (defconst tibetan-modifier-tibkey-alist nil) | |
295 | (defconst tibetan-non-stacking-tibkey-alist nil) | |
296 | ||
297 | (let ((type-list '("consonant" "subjoined" "vowel" "modifier" "non-stacking")) | |
298 | (tail tibetan-tibkey-to-transcription-alist) | |
299 | elt) | |
300 | (while tail | |
301 | (setq elt (car tail) tail (cdr tail)) | |
302 | (let ((types type-list) | |
303 | type transcription trans-alist tibkey-alist) | |
304 | (while types | |
305 | (setq type (car types) types (cdr types)) | |
306 | (setq trans-alist | |
307 | (if (string= type "non-stacking") | |
308 | 'tibetan-wylie-non-stacking-alist | |
309 | (intern (format "tibetan-%s-transcription-alist" type))) | |
310 | transcription | |
311 | (cdr (assoc (cdr elt) (symbol-value trans-alist)))) | |
312 | (when transcription | |
313 | (setq tibkey-alist (intern (format "tibetan-%s-tibkey-alist" type))) | |
314 | (set tibkey-alist | |
315 | (cons (cons (car elt) transcription) | |
316 | (symbol-value tibkey-alist))))) | |
317 | (or tibkey-alist | |
318 | (error "No Tibetan transcription for %s" (cdr elt)))))) | |
319 | ||
320 | (defconst tibetan-punctuation-tibkey-alist | |
4b725a70 PE |
321 | '(("1" . "༡") |
322 | ("!" . "༄") ; nyi zla long | |
323 | ("2" . "༢") | |
324 | ("@" . "༅") ; nyi zla simple | |
325 | ("3" . "༣") | |
653b6bad | 326 | ;;; ("#" ) |
4b725a70 | 327 | ("4" . "༤") |
653b6bad | 328 | ;;; ("$" ) |
4b725a70 PE |
329 | ("5" . "༥") |
330 | ("%" . "༔") | |
331 | ("6" . "༦") | |
332 | ("^" . "༁") | |
333 | ("7" . "༧") | |
334 | ("8" . "༨") | |
653b6bad | 335 | ;;; ("*" ) ; avagraha, not supported yet |
4b725a70 PE |
336 | ("9" . "༩") |
337 | ("(" . "༼") | |
338 | ("0" . "༠") | |
339 | (")" . "༽") | |
4c36be58 | 340 | ;;; ("-" ) ; emphatic, not yet supported |
653b6bad KH |
341 | ;;; ("_" ) ; id. |
342 | ;;; ("=" ) ; special sign, not yet supported | |
4b725a70 PE |
343 | ("+" . "༑") |
344 | ("\\" . "༏") | |
345 | ("|" . "༈") | |
346 | ("I" . "྅") ; avagraha | |
347 | (":" . "ཿ") | |
348 | ;;; (">" ?་) ; to be assigned to SPC | |
653b6bad | 349 | (">" . " ") |
4b725a70 PE |
350 | ("?" . "།") |
351 | ("??" . "༎") | |
352 | ("????" . ["༎ ༎"]) | |
353 | (" " . "་") | |
653b6bad | 354 | )) |
2cd1b939 | 355 | |
653b6bad KH |
356 | ;; Convert TibKey string to Tibetan-Roman transcription string. |
357 | ;; If there's no proper conversion, return nil. | |
358 | (defun quail-tibkey-to-transcription (tibkey) | |
359 | (let ((len (length tibkey)) | |
360 | (i 0) | |
361 | (trans-list nil)) | |
362 | (while (< i len) | |
363 | (let ((last len) | |
364 | trans) | |
365 | (while (and (not trans) (> last i)) | |
366 | (or (setq trans (cdr (assoc (substring tibkey i last) | |
367 | tibetan-tibkey-to-transcription-alist))) | |
368 | (setq last (1- last)))) | |
369 | (if trans | |
370 | (setq trans-list (cons trans trans-list) | |
371 | i last) | |
372 | (setq trans-list nil i len)))) | |
373 | (apply 'concat (nreverse trans-list)))) | |
374 | ||
375 | (defvar quail-tibkey-characters nil) | |
376 | ||
377 | (defun quail-tibkey-update-translation (control-flag) | |
378 | (if (integerp control-flag) | |
379 | ;; Non-composable-character typed. | |
380 | (setq quail-current-str | |
381 | (buffer-substring (overlay-start quail-overlay) | |
382 | (overlay-end quail-overlay)) | |
383 | unread-command-events | |
384 | (string-to-list | |
385 | (substring quail-current-key control-flag))) | |
386 | (let ((transcription (quail-tibkey-to-transcription quail-current-key))) | |
387 | (if (> (length transcription) 0) | |
388 | (let ((quail-current-key transcription)) | |
389 | (setq control-flag | |
390 | (quail-tibetan-update-translation control-flag))) | |
391 | (or quail-current-str | |
392 | (setq quail-current-str quail-current-key))))) | |
393 | control-flag) | |
2cd1b939 KH |
394 | |
395 | (quail-define-package "tibetan-tibkey" "Tibetan" "TIBt" t | |
396 | "Tibetan character input by TibKey key assignment. | |
397 | ||
653b6bad | 398 | \(This implementation is still incomplete. |
2cd1b939 KH |
399 | Therefore, the following key assignment is a provisional one.) |
400 | ||
401 | [NOT SHIFTED] | |
402 | ||
403 | +-------------------------------------------------------+ | |
4b725a70 | 404 | |`ྃ|1༡|2༢|3༣|4༤|5༥|6༦|7༧|8༨|9༩|0༠|- |= |\\༈| |
2cd1b939 | 405 | +-------------------------------------------------------+ |
4b725a70 | 406 | |qཀ|wཁ|eག|rང|tཅ|yཆ|uཇ|iཉ|oཏ|pཐ|[ད|]ན| |
2cd1b939 | 407 | +-----------------------------------------------+ |
4b725a70 | 408 | |aཔ| sཕ| dབ|fམ|gུ|h |jོ|kཙ|lཚ|;ཛ|'ཝ| |
2cd1b939 | 409 | +---------------------------------------------+ |
4b725a70 | 410 | |zཞ|xཟ|cའ|vཡ|bར|nལ|mཤ|,ས|.ཧ|/ཨ| |
2cd1b939 KH |
411 | +---------------------------------------+ |
412 | The key 'h' is used for consonant stacking. | |
413 | ||
414 | [SHIFTED] | |
415 | ||
416 | +----------------------------------------------------------+ | |
4b725a70 | 417 | |~ྂ|!༄|@༅|# |$ |%༔ |^༁|& |* |(༼|)༽|_ |+༑| |༈| |
2cd1b939 | 418 | +----------------------------------------------------------+ |
4b725a70 | 419 | |Qཀྵ|W |E |R |Tྀ|Y |U |I྅|Oཊ|Pཋ|{ཌ|}ཎ| |
2cd1b939 | 420 | +-----------------------------------------------+ |
4b725a70 | 421 | |A |S |D |Fཾ|Gི|H྄|Jེ|K |L |:ཿ|\"ྭ| |
2cd1b939 | 422 | +-------------------------------------------+ |
4b725a70 | 423 | |Z |X |Cཱ|Vྱ|Bྲ|Nླ|Mཥ|< |> |?། | |
177c0ea7 | 424 | +---------------------------------------+ |
2cd1b939 KH |
425 | |
426 | DIFFERENCE FROM THE ORIGINAL TIBKEY: | |
427 | ||
428 | 1. Vowel 'a' should be typed explicitly by the key 'A'. | |
e67e483f | 429 | This is really inconvenient. But to make the coding |
c7015153 | 430 | scheme clear, it is desirable to have an explicit |
2cd1b939 | 431 | vowel sign for 'a'. |
e67e483f | 432 | 2. Tsheg is assigned to SPC key. You can input a space |
2cd1b939 | 433 | by typing '>'. |
4b725a70 PE |
434 | 4. To avoid the default stacking and to obtain གཡ, |
435 | type 'E' instead of 'v' (=ཡ). | |
2cd1b939 | 436 | 3. There are many characters that are not supported in the |
e67e483f JB |
437 | current implementation (especially special signs). |
438 | I hope I'll complete in a future revision. | |
2cd1b939 | 439 | " |
653b6bad KH |
440 | nil nil nil nil nil nil nil nil |
441 | 'quail-tibkey-update-translation) | |
442 | ||
443 | (quail-install-map | |
444 | (quail-map-from-table | |
445 | '((base-state (tibetan-consonant-tibkey-alist . s-state) | |
446 | (tibetan-non-stacking-tibkey-alist . s-state) | |
447 | tibetan-subjoined-tibkey-alist | |
448 | tibetan-vowel-tibkey-alist | |
449 | tibetan-modifier-tibkey-alist | |
450 | tibetan-punctuation-tibkey-alist) | |
451 | (s-state (tibetan-subjoined-tibkey-alist . s-state) | |
452 | (tibetan-vowel-tibkey-alist . m-state)) | |
453 | (m-state tibetan-modifier-tibkey-alist)))) | |
be567141 PJ |
454 | |
455 | ;;; tibetan.el ends here |