Update AIST copyright years.
[bpt/emacs.git] / leim / quail / cyrillic.el
1 ;;; cyrillic.el --- Quail package for inputting Cyrillic characters
2
3 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006
4 ;; Free Software Foundation, Inc.
5 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 ;; National Institute of Advanced Industrial Science and Technology (AIST)
7 ;; Registration Number H14PRO021
8
9 ;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
10 ;; Keywords: multilingual, input method, Cyrillic, i18n
11
12 ;; This file is part of GNU Emacs.
13
14 ;; GNU Emacs is free software; you can redistribute it and/or modify
15 ;; it under the terms of the GNU General Public License as published by
16 ;; the Free Software Foundation; either version 2, or (at your option)
17 ;; any later version.
18
19 ;; GNU Emacs is distributed in the hope that it will be useful,
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 ;; GNU General Public License for more details.
23
24 ;; You should have received a copy of the GNU General Public License
25 ;; along with GNU Emacs; see the file COPYING. If not, write to the
26 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
27 ;; Boston, MA 02110-1301, USA.
28
29 ;;; Commentary:
30
31 ;; These methods use a mixture of 8859-5 and Unicode. Quail, used
32 ;; with ucs-tables provides suport for translating on the fly to
33 ;; what's appropriate for aa buffer's file coding system, so the
34 ;; encoding shouldn't matter too much provided it supports the
35 ;; necessary characters.
36
37 ;;; Code:
38
39 (require 'quail)
40
41 ;; This was `cyrillic-jcuken'. Alexander Mikhailian
42 ;; <mikhailian@altern.org> says: "cyrillic-jcuken" is actually
43 ;; russian. It is ok but a bit outdated. This layout has been used
44 ;; in typewriters for ages but it has been superceeded on desktops by
45 ;; a variation of this layout, implemented in M$ Windows software.
46 ;; The Windows layout is greatly preferred because of the comma and
47 ;; period being placed more conviniently and, of course, because of
48 ;; the popularity of Windows software. This layout is a common option
49 ;; in X Windows and console layouts for GNU/Linux. [See
50 ;; `russian-computer' below.]
51 (quail-define-package
52 "russian-typewriter" "Russian" "\e,L69\e(B" nil
53 "\e,L9FC:5=\e(B Russian typewriter layout (ISO 8859-5 encoding)."
54 nil t t t t nil nil nil nil nil t)
55
56 ;; 1! 2" 3' 4* 5: 6, 7. 8; 9( 0) -_ =+ \e,L!\e(B
57 ;; \e,L9\e(B \e,LF\e(B \e,LC\e(B \e,L:\e(B \e,L5\e(B \e,L=\e(B \e,L3\e(B \e,LH\e(B \e,LI\e(B \e,L7\e(B \e,LE\e(B \e,LJ\e(B
58 ;; \e,LD\e(B \e,LK\e(B \e,L2\e(B \e,L0\e(B \e,L?\e(B \e,L@\e(B \e,L>\e(B \e,L;\e(B \e,L4\e(B \e,L6\e(B \e,LM\e(B
59 ;; \e,LO\e(B \e,LG\e(B \e,LA\e(B \e,L<\e(B \e,L8\e(B \e,LB\e(B \e,LL\e(B \e,L1\e(B \e,LN\e(B /?
60
61 (quail-define-rules
62 ("1" ?1)
63 ("2" ?2)
64 ("3" ?3)
65 ("4" ?4)
66 ("5" ?5)
67 ("6" ?6)
68 ("7" ?7)
69 ("8" ?8)
70 ("9" ?9)
71 ("0" ?0)
72 ("-" ?-)
73 ("=" ?=)
74 ("`" ?\e,Lq\e(B)
75 ("q" ?\e,LY\e(B)
76 ("w" ?\e,Lf\e(B)
77 ("e" ?\e,Lc\e(B)
78 ("r" ?\e,LZ\e(B)
79 ("t" ?\e,LU\e(B)
80 ("y" ?\e,L]\e(B)
81 ("u" ?\e,LS\e(B)
82 ("i" ?\e,Lh\e(B)
83 ("o" ?\e,Li\e(B)
84 ("p" ?\e,LW\e(B)
85 ("[" ?\e,Le\e(B)
86 ("]" ?\e,Lj\e(B)
87 ("a" ?\e,Ld\e(B)
88 ("s" ?\e,Lk\e(B)
89 ("d" ?\e,LR\e(B)
90 ("f" ?\e,LP\e(B)
91 ("g" ?\e,L_\e(B)
92 ("h" ?\e,L`\e(B)
93 ("j" ?\e,L^\e(B)
94 ("k" ?\e,L[\e(B)
95 ("l" ?\e,LT\e(B)
96 (";" ?\e,LV\e(B)
97 ("'" ?\e,Lm\e(B)
98 ("\\" ?\\)
99 ("z" ?\e,Lo\e(B)
100 ("x" ?\e,Lg\e(B)
101 ("c" ?\e,La\e(B)
102 ("v" ?\e,L\\e(B)
103 ("b" ?\e,LX\e(B)
104 ("n" ?\e,Lb\e(B)
105 ("m" ?\e,Ll\e(B)
106 ("," ?\e,LQ\e(B)
107 ("." ?\e,Ln\e(B)
108 ("/" ?/)
109
110 ("!" ?!)
111 ("@" ?\")
112 ("#" ?')
113 ("$" ?*)
114 ("%" ?:)
115 ("^" ?,)
116 ("&" ?.)
117 ("*" ?\;)
118 ("(" ?\()
119 (")" ?\))
120 ("_" ?_)
121 ("+" ?+)
122 ("~" ?\e,L!\e(B)
123 ("Q" ?\e,L9\e(B)
124 ("W" ?\e,LF\e(B)
125 ("E" ?\e,LC\e(B)
126 ("R" ?\e,L:\e(B)
127 ("T" ?\e,L5\e(B)
128 ("Y" ?\e,L=\e(B)
129 ("U" ?\e,L3\e(B)
130 ("I" ?\e,LH\e(B)
131 ("O" ?\e,LI\e(B)
132 ("P" ?\e,L7\e(B)
133 ("{" ?\e,LE\e(B)
134 ("}" ?\e,LJ\e(B)
135 ("A" ?\e,LD\e(B)
136 ("S" ?\e,LK\e(B)
137 ("D" ?\e,L2\e(B)
138 ("F" ?\e,L0\e(B)
139 ("G" ?\e,L?\e(B)
140 ("H" ?\e,L@\e(B)
141 ("J" ?\e,L>\e(B)
142 ("K" ?\e,L;\e(B)
143 ("L" ?\e,L4\e(B)
144 (":" ?\e,L6\e(B)
145 ("\"" ?\e,LM\e(B)
146 ("|" ?|)
147 ("Z" ?\e,LO\e(B)
148 ("X" ?\e,LG\e(B)
149 ("C" ?\e,LA\e(B)
150 ("V" ?\e,L<\e(B)
151 ("B" ?\e,L8\e(B)
152 ("N" ?\e,LB\e(B)
153 ("M" ?\e,LL\e(B)
154 ("<" ?\e,L1\e(B)
155 (">" ?\e,LN\e(B)
156 ("?" ??)
157 )
158
159 ;; Maintain the obsolete name for now.
160 (push (cons "cyrillic-jcuken"
161 (cdr (assoc "russian-typewriter" quail-package-alist)))
162 quail-package-alist)
163
164 ;; This needs to be seen by quail-update-leim-list-file, but cannot be
165 ;; commented out because quail-update-leim-list-file ignores
166 ;; commented-out lines.
167 (if nil
168 (quail-define-package
169 "cyrillic-jcuken" "Russian" "\e,L69\e(B" nil
170 "\e,L9FC:5=\e(B Russian typewriter layout (ISO 8859-5 encoding)."))
171
172 ;; See comment above. This is the variant `winkeys' from `ru' in XKB.
173 (quail-define-package
174 "russian-computer" "Russian" "RU" nil
175 "\e,L9FC:5=\e(B Russian computer layout"
176 nil t t t t nil nil nil nil nil t)
177
178 ;; 1! 2" 3\e,Lp\e(B 4; 5% 6: 7? 8* 9( 0) -_ =+ \e,Lq!\e(B
179 ;; \e,L9\e(B \e,LF\e(B \e,LC\e(B \e,L:\e(B \e,L5\e(B \e,L=\e(B \e,L3\e(B \e,LH\e(B \e,LI\e(B \e,L7\e(B \e,LE\e(B \e,LJ\e(B
180 ;; \e,LD\e(B \e,LK\e(B \e,L2\e(B \e,L0\e(B \e,L?\e(B \e,L@\e(B \e,L>\e(B \e,L;\e(B \e,L4\e(B \e,L6\e(B \e,LM\e(B
181 ;; \e,LO\e(B \e,LG\e(B \e,LA\e(B \e,L<\e(B \e,L8\e(B \e,LB\e(B \e,LL\e(B \e,L1\e(B \e,LN\e(B .,
182
183 (quail-define-rules
184 ("1" ?1)
185 ("2" ?2)
186 ("3" ?3)
187 ("4" ?4)
188 ("5" ?5)
189 ("6" ?6)
190 ("7" ?7)
191 ("8" ?8)
192 ("9" ?9)
193 ("0" ?0)
194 ("-" ?-)
195 ("=" ?=)
196 ("`" ?\e,Lq\e(B)
197 ("q" ?\e,LY\e(B)
198 ("w" ?\e,Lf\e(B)
199 ("e" ?\e,Lc\e(B)
200 ("r" ?\e,LZ\e(B)
201 ("t" ?\e,LU\e(B)
202 ("y" ?\e,L]\e(B)
203 ("u" ?\e,LS\e(B)
204 ("i" ?\e,Lh\e(B)
205 ("o" ?\e,Li\e(B)
206 ("p" ?\e,LW\e(B)
207 ("[" ?\e,Le\e(B)
208 ("]" ?\e,Lj\e(B)
209 ("a" ?\e,Ld\e(B)
210 ("s" ?\e,Lk\e(B)
211 ("d" ?\e,LR\e(B)
212 ("f" ?\e,LP\e(B)
213 ("g" ?\e,L_\e(B)
214 ("h" ?\e,L`\e(B)
215 ("j" ?\e,L^\e(B)
216 ("k" ?\e,L[\e(B)
217 ("l" ?\e,LT\e(B)
218 (";" ?\e,LV\e(B)
219 ("'" ?\e,Lm\e(B)
220 ("\\" ?\\)
221 ("z" ?\e,Lo\e(B)
222 ("x" ?\e,Lg\e(B)
223 ("c" ?\e,La\e(B)
224 ("v" ?\e,L\\e(B)
225 ("b" ?\e,LX\e(B)
226 ("n" ?\e,Lb\e(B)
227 ("m" ?\e,Ll\e(B)
228 ("," ?\e,LQ\e(B)
229 ("." ?\e,Ln\e(B)
230 ("/" ?.)
231 ("!" ?!)
232 ("@" ?\")
233 ("#" ?\e,Lp\e(B)
234 ("$" ?\;)
235 ("%" ?%)
236 ("^" ?:)
237 ("&" ??)
238 ("*" ?*)
239 ("(" ?()
240 (")" ?))
241 ("_" ?_)
242 ("+" ?+)
243 ("~" ?\e,L!\e(B)
244 ("Q" ?\e,L9\e(B)
245 ("W" ?\e,LF\e(B)
246 ("E" ?\e,LC\e(B)
247 ("R" ?\e,L:\e(B)
248 ("T" ?\e,L5\e(B)
249 ("Y" ?\e,L=\e(B)
250 ("U" ?\e,L3\e(B)
251 ("I" ?\e,LH\e(B)
252 ("O" ?\e,LI\e(B)
253 ("P" ?\e,L7\e(B)
254 ("{" ?\e,LE\e(B)
255 ("}" ?\e,LJ\e(B)
256 ("A" ?\e,LD\e(B)
257 ("S" ?\e,LK\e(B)
258 ("D" ?\e,L2\e(B)
259 ("F" ?\e,L0\e(B)
260 ("G" ?\e,L?\e(B)
261 ("H" ?\e,L@\e(B)
262 ("J" ?\e,L>\e(B)
263 ("K" ?\e,L;\e(B)
264 ("L" ?\e,L4\e(B)
265 (":" ?\e,L6\e(B)
266 ("\"" ?\e,LM\e(B)
267 ("|" ?|)
268 ("Z" ?\e,LO\e(B)
269 ("X" ?\e,LG\e(B)
270 ("C" ?\e,LA\e(B)
271 ("V" ?\e,L<\e(B)
272 ("B" ?\e,L8\e(B)
273 ("N" ?\e,LB\e(B)
274 ("M" ?\e,LL\e(B)
275 ("<" ?\e,L1\e(B)
276 (">" ?\e,LN\e(B)
277 ("?" ?,))
278
279 ;; Mikhailian couldn't check the next two.
280
281 ;; This seems to have the same layout for letters as mk in XKB, but at
282 ;; least the top row is different.
283 (quail-define-package
284 "cyrillic-macedonian" "Cyrillic" "\e,L6\e(BM" nil
285 "\e,L)*5@B7\e(B-\e,L#,\e(B keyboard layout based on JUS.I.K1.004 (ISO 8859-5 encoding)"
286 nil t t t t nil nil nil nil nil t)
287
288 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
289 ;; \e,L)\e(B \e,L*\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L#\e(B
290 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L,\e(B \e,L6\e(B
291 ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
292
293 (quail-define-rules
294 ("1" ?1)
295 ("2" ?2)
296 ("3" ?3)
297 ("4" ?4)
298 ("5" ?5)
299 ("6" ?6)
300 ("7" ?7)
301 ("8" ?8)
302 ("9" ?9)
303 ("0" ?0)
304 ("-" ?/)
305 ("=" ?+)
306 ("`" ?<)
307 ("q" ?\e,Ly\e(B)
308 ("w" ?\e,Lz\e(B)
309 ("e" ?\e,LU\e(B)
310 ("r" ?\e,L`\e(B)
311 ("t" ?\e,Lb\e(B)
312 ("y" ?\e,LW\e(B)
313 ("u" ?\e,Lc\e(B)
314 ("i" ?\e,LX\e(B)
315 ("o" ?\e,L^\e(B)
316 ("p" ?\e,L_\e(B)
317 ("[" ?\e,Lh\e(B)
318 ("]" ?\e,Ls\e(B)
319 ("a" ?\e,LP\e(B)
320 ("s" ?\e,La\e(B)
321 ("d" ?\e,LT\e(B)
322 ("f" ?\e,Ld\e(B)
323 ("g" ?\e,LS\e(B)
324 ("h" ?\e,Le\e(B)
325 ("j" ?\e,Lx\e(B)
326 ("k" ?\e,LZ\e(B)
327 ("l" ?\e,L[\e(B)
328 (";" ?\e,Lg\e(B)
329 ("'" ?\e,L|\e(B)
330 ("\\" ?\e,LV\e(B)
331 ("z" ?\e,Lu\e(B)
332 ("x" ?\e,L\7f\e(B)
333 ("c" ?\e,Lf\e(B)
334 ("v" ?\e,LR\e(B)
335 ("b" ?\e,LQ\e(B)
336 ("n" ?\e,L]\e(B)
337 ("m" ?\e,L\\e(B)
338 ("," ?,)
339 ("." ?.)
340 ("/" ?-)
341
342 ("!" ?!)
343 ("@" ?\")
344 ("#" ?#)
345 ("$" ?$)
346 ("%" ?%)
347 ("^" ?&)
348 ("&" ?')
349 ("*" ?\()
350 ("(" ?\))
351 (")" ?=)
352 ("_" ??)
353 ("+" ?*)
354 ("~" ?>)
355 ("Q" ?\e,L)\e(B)
356 ("W" ?\e,L*\e(B)
357 ("E" ?\e,L5\e(B)
358 ("R" ?\e,L@\e(B)
359 ("T" ?\e,LB\e(B)
360 ("Y" ?\e,L7\e(B)
361 ("U" ?\e,LC\e(B)
362 ("I" ?\e,L8\e(B)
363 ("O" ?\e,L>\e(B)
364 ("P" ?\e,L?\e(B)
365 ("{" ?\e,LH\e(B)
366 ("}" ?\e,L#\e(B)
367 ("A" ?\e,L0\e(B)
368 ("S" ?\e,LA\e(B)
369 ("D" ?\e,L4\e(B)
370 ("F" ?\e,LD\e(B)
371 ("G" ?\e,L3\e(B)
372 ("H" ?\e,LE\e(B)
373 ("J" ?\e,L(\e(B)
374 ("K" ?\e,L:\e(B)
375 ("L" ?\e,L;\e(B)
376 (":" ?\e,LG\e(B)
377 ("\"" ?\e,L,\e(B)
378 ("|" ?\e,L6\e(B)
379 ("Z" ?\e,L%\e(B)
380 ("X" ?\e,L/\e(B)
381 ("C" ?\e,LF\e(B)
382 ("V" ?\e,L2\e(B)
383 ("B" ?\e,L1\e(B)
384 ("N" ?\e,L=\e(B)
385 ("M" ?\e,L<\e(B)
386 ("<" ?\;)
387 (">" ?:)
388 ("?" ?_))
389
390 ;;
391
392 (quail-define-package
393 "cyrillic-serbian" "Cyrillic" "\e,L6\e(BS" nil
394 "\e,L)*5@B7\e(B-\e,L"+\e(B keyboard layout based on JUS.I.K1.005 (ISO 8859-5 encoding)"
395 nil t t t t nil nil nil nil nil t)
396
397 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
398 ;; \e,L)\e(B \e,L*\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L"\e(B
399 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L+\e(B \e,L6\e(B
400 ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
401
402 (quail-define-rules
403 ("1" ?1)
404 ("2" ?2)
405 ("3" ?3)
406 ("4" ?4)
407 ("5" ?5)
408 ("6" ?6)
409 ("7" ?7)
410 ("8" ?8)
411 ("9" ?9)
412 ("0" ?0)
413 ("-" ?/)
414 ("=" ?+)
415 ("`" ?<)
416 ("q" ?\e,Ly\e(B)
417 ("w" ?\e,Lz\e(B)
418 ("e" ?\e,LU\e(B)
419 ("r" ?\e,L`\e(B)
420 ("t" ?\e,Lb\e(B)
421 ("y" ?\e,LW\e(B)
422 ("u" ?\e,Lc\e(B)
423 ("i" ?\e,LX\e(B)
424 ("o" ?\e,L^\e(B)
425 ("p" ?\e,L_\e(B)
426 ("[" ?\e,Lh\e(B)
427 ("]" ?\e,Lr\e(B)
428 ("a" ?\e,LP\e(B)
429 ("s" ?\e,La\e(B)
430 ("d" ?\e,LT\e(B)
431 ("f" ?\e,Ld\e(B)
432 ("g" ?\e,LS\e(B)
433 ("h" ?\e,Le\e(B)
434 ("j" ?\e,Lx\e(B)
435 ("k" ?\e,LZ\e(B)
436 ("l" ?\e,L[\e(B)
437 (";" ?\e,Lg\e(B)
438 ("'" ?\e,L{\e(B)
439 ("\\" ?\e,LV\e(B)
440 ("z" ?\e,Lu\e(B)
441 ("x" ?\e,L\7f\e(B)
442 ("c" ?\e,Lf\e(B)
443 ("v" ?\e,LR\e(B)
444 ("b" ?\e,LQ\e(B)
445 ("n" ?\e,L]\e(B)
446 ("m" ?\e,L\\e(B)
447 ("," ?,)
448 ("." ?.)
449 ("/" ?-)
450
451 ("!" ?!)
452 ("@" ?\")
453 ("#" ?#)
454 ("$" ?$)
455 ("%" ?%)
456 ("^" ?&)
457 ("&" ?')
458 ("*" ?\()
459 ("(" ?\))
460 (")" ?=)
461 ("_" ??)
462 ("+" ?*)
463 ("~" ?>)
464 ("Q" ?\e,L)\e(B)
465 ("W" ?\e,L*\e(B)
466 ("E" ?\e,L5\e(B)
467 ("R" ?\e,L@\e(B)
468 ("T" ?\e,LB\e(B)
469 ("Y" ?\e,L7\e(B)
470 ("U" ?\e,LC\e(B)
471 ("I" ?\e,L8\e(B)
472 ("O" ?\e,L>\e(B)
473 ("P" ?\e,L?\e(B)
474 ("{" ?\e,LH\e(B)
475 ("}" ?\e,L"\e(B)
476 ("A" ?\e,L0\e(B)
477 ("S" ?\e,LA\e(B)
478 ("D" ?\e,L4\e(B)
479 ("F" ?\e,LD\e(B)
480 ("G" ?\e,L3\e(B)
481 ("H" ?\e,LE\e(B)
482 ("J" ?\e,L(\e(B)
483 ("K" ?\e,L:\e(B)
484 ("L" ?\e,L;\e(B)
485 (":" ?\e,LG\e(B)
486 ("\"" ?\e,L+\e(B)
487 ("|" ?\e,L6\e(B)
488 ("Z" ?\e,L%\e(B)
489 ("X" ?\e,L/\e(B)
490 ("C" ?\e,LF\e(B)
491 ("V" ?\e,L2\e(B)
492 ("B" ?\e,L1\e(B)
493 ("N" ?\e,L=\e(B)
494 ("M" ?\e,L<\e(B)
495 ("<" ?\;)
496 (">" ?:)
497 ("?" ?_))
498
499 ;;
500
501 ;; Alexander Mikhailian comments:
502 ;; Having worked for several years as a Belarusian linguist, I still
503 ;; can not find the origin of this layout which BTW does include
504 ;; several characters that are not present in Belarusian and does not
505 ;; include a few ones that do exist in Belarusian. Besides, the typo
506 ;; in the name of this layout speaks for itself since Belarusian has
507 ;; an outdated version of spelling which is "Byelorussian" and not
508 ;; "beylorussian". I suggest that you just remove this layout.
509
510 ;; [`derived from JUS.I.K1' according to an old Mule note -- fx]
511
512 ;; (quail-define-package
513 ;; "cyrillic-beylorussian" "Belarussian" "\e,L6\e(BB" nil
514 ;; "\e,L)*5@B7\e(B-\e,L&.\e(B BEYLORUSSIAN (ISO 8859-5 encoding)"
515 ;; nil t t t t nil nil nil nil nil t)
516
517 ;; ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
518 ;; ;; \e,L)\e(B \e,L*\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L&\e(B
519 ;; ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L.\e(B \e,L6\e(B
520 ;; ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
521
522 ;; (quail-define-rules
523 ;; ("-" ?/)
524 ;; ("=" ?+)
525 ;; ("`" ?<)
526 ;; ("q" ?\e,Ly\e(B)
527 ;; ("w" ?\e,Lz\e(B)
528 ;; ("e" ?\e,LU\e(B)
529 ;; ("r" ?\e,L`\e(B)
530 ;; ("t" ?\e,Lb\e(B)
531 ;; ("y" ?\e,LW\e(B)
532 ;; ("u" ?\e,Lc\e(B)
533 ;; ("i" ?\e,LX\e(B)
534 ;; ("o" ?\e,L^\e(B)
535 ;; ("p" ?\e,L_\e(B)
536 ;; ("[" ?\e,Lh\e(B)
537 ;; ("]" ?\e,Lv\e(B)
538 ;; ("a" ?\e,LP\e(B)
539 ;; ("s" ?\e,La\e(B)
540 ;; ("d" ?\e,LT\e(B)
541 ;; ("f" ?\e,Ld\e(B)
542 ;; ("g" ?\e,LS\e(B)
543 ;; ("h" ?\e,Le\e(B)
544 ;; ("j" ?\e,Lx\e(B)
545 ;; ("k" ?\e,LZ\e(B)
546 ;; ("l" ?\e,L[\e(B)
547 ;; (";" ?\e,Lg\e(B)
548 ;; ("'" ?\e,L~\e(B)
549 ;; ("\\" ?\e,LV\e(B)
550 ;; ("z" ?\e,Lu\e(B)
551 ;; ("x" ?\e,L\7f\e(B)
552 ;; ("c" ?\e,Lf\e(B)
553 ;; ("v" ?\e,LR\e(B)
554 ;; ("b" ?\e,LQ\e(B)
555 ;; ("n" ?\e,L]\e(B)
556 ;; ("m" ?\e,L\\e(B)
557 ;; ("/" ?-)
558
559 ;; ("@" ?\")
560 ;; ("^" ?&)
561 ;; ("&" ?')
562 ;; ("*" ?\()
563 ;; ("(" ?\))
564 ;; (")" ?=)
565 ;; ("_" ??)
566 ;; ("+" ?*)
567 ;; ("~" ?>)
568 ;; ("Q" ?\e,L)\e(B)
569 ;; ("W" ?\e,L*\e(B)
570 ;; ("E" ?\e,L5\e(B)
571 ;; ("R" ?\e,L@\e(B)
572 ;; ("T" ?\e,LB\e(B)
573 ;; ("Y" ?\e,L7\e(B)
574 ;; ("U" ?\e,LC\e(B)
575 ;; ("I" ?\e,L8\e(B)
576 ;; ("O" ?\e,L>\e(B)
577 ;; ("P" ?\e,L?\e(B)
578 ;; ("{" ?\e,LH\e(B)
579 ;; ("}" ?\e,L&\e(B)
580 ;; ("A" ?\e,L0\e(B)
581 ;; ("S" ?\e,LA\e(B)
582 ;; ("D" ?\e,L4\e(B)
583 ;; ("F" ?\e,LD\e(B)
584 ;; ("G" ?\e,L3\e(B)
585 ;; ("H" ?\e,LE\e(B)
586 ;; ("J" ?\e,L(\e(B)
587 ;; ("K" ?\e,L:\e(B)
588 ;; ("L" ?\e,L;\e(B)
589 ;; (":" ?\e,LG\e(B)
590 ;; ("\"" ?\e,L.\e(B)
591 ;; ("|" ?\e,L6\e(B)
592 ;; ("Z" ?\e,L%\e(B)
593 ;; ("X" ?\e,L/\e(B)
594 ;; ("C" ?\e,LF\e(B)
595 ;; ("V" ?\e,L2\e(B)
596 ;; ("B" ?\e,L1\e(B)
597 ;; ("N" ?\e,L=\e(B)
598 ;; ("M" ?\e,L<\e(B)
599 ;; ("<" ?\;)
600 ;; (">" ?:)
601 ;; ("?" ?_))
602
603 ;;
604
605 ;; Alexander Mikhailian reports the opinion of fellow Ukrainian
606 ;; linguist Bogdan Babych <babych@altern.org>:
607 ;; He had seen this layout on some oldish systems but that the vast
608 ;; majority of the population uses a modified version of the M$ Windows
609 ;; layout. In fact, Microsoft shipped for a while a layout that was lacking
610 ;; two characters, precisely the "GHE_WITH_UPTURN" and the apostrophe. The
611 ;; latest versions of Windows software do have the "GHE_WITH_UPTURN" in the
612 ;; ukrainian keyborad layout but the apostrophe is still not there, whereas
613 ;; there is one letter, "Cyrillic_YO", not used in ukrainian. Ukrainians
614 ;; normally replace the "Cyrillic_YO" by the apostrophe sign and live
615 ;; happily with this little change. [See "ukrainian-computer" below.]
616
617 ;; Fixme: add GHE_WITH_UPTURN.
618 (quail-define-package
619 "cyrillic-ukrainian" "Ukrainian" "\e,L6\e(BU" nil
620 "\e,L$'5@B7\e(B-\e,L&.\e(B UKRAINIAN (ISO 8859-5 encoding)
621
622 Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
623 nil t t t t nil nil nil nil nil t)
624
625 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
626 ;; \e,L$\e(B \e,L'\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L&\e(B
627 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L.\e(B \e,L6\e(B
628 ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
629
630 (quail-define-rules
631 ("1" ?1)
632 ("2" ?2)
633 ("3" ?3)
634 ("4" ?4)
635 ("5" ?5)
636 ("6" ?6)
637 ("7" ?7)
638 ("8" ?8)
639 ("9" ?9)
640 ("0" ?0)
641 ("-" ?/)
642 ("=" ?+)
643 ("`" ?<)
644 ("q" ?\e,Lt\e(B)
645 ("w" ?\e,Lw\e(B)
646 ("e" ?\e,LU\e(B)
647 ("r" ?\e,L`\e(B)
648 ("t" ?\e,Lb\e(B)
649 ("y" ?\e,LW\e(B)
650 ("u" ?\e,Lc\e(B)
651 ("i" ?\e,LX\e(B)
652 ("o" ?\e,L^\e(B)
653 ("p" ?\e,L_\e(B)
654 ("[" ?\e,Lh\e(B)
655 ("]" ?\e,Lv\e(B)
656 ("a" ?\e,LP\e(B)
657 ("s" ?\e,La\e(B)
658 ("d" ?\e,LT\e(B)
659 ("f" ?\e,Ld\e(B)
660 ("g" ?\e,LS\e(B)
661 ("h" ?\e,Le\e(B)
662 ("j" ?\e,Lx\e(B)
663 ("k" ?\e,LZ\e(B)
664 ("l" ?\e,L[\e(B)
665 (";" ?\e,Lg\e(B)
666 ("'" ?\e,L~\e(B)
667 ("\\" ?\e,LV\e(B)
668 ("z" ?\e,Lu\e(B)
669 ("x" ?\e,L\7f\e(B)
670 ("c" ?\e,Lf\e(B)
671 ("v" ?\e,LR\e(B)
672 ("b" ?\e,LQ\e(B)
673 ("n" ?\e,L]\e(B)
674 ("m" ?\e,L\\e(B)
675 ("," ?,)
676 ("." ?.)
677 ("/" ?-)
678
679 ("!" ?!)
680 ("@" ?\")
681 ("#" ?#)
682 ("$" ?$)
683 ("%" ?%)
684 ("^" ?&)
685 ("&" ?')
686 ("*" ?\()
687 ("(" ?\))
688 (")" ?=)
689 ("_" ??)
690 ("+" ?*)
691 ("~" ?>)
692 ("Q" ?\e,L$\e(B)
693 ("W" ?\e,L'\e(B)
694 ("E" ?\e,L5\e(B)
695 ("R" ?\e,L@\e(B)
696 ("T" ?\e,LB\e(B)
697 ("Y" ?\e,L7\e(B)
698 ("U" ?\e,LC\e(B)
699 ("I" ?\e,L8\e(B)
700 ("O" ?\e,L>\e(B)
701 ("P" ?\e,L?\e(B)
702 ("{" ?\e,LH\e(B)
703 ("}" ?\e,L&\e(B)
704 ("A" ?\e,L0\e(B)
705 ("S" ?\e,LA\e(B)
706 ("D" ?\e,L4\e(B)
707 ("F" ?\e,LD\e(B)
708 ("G" ?\e,L3\e(B)
709 ("H" ?\e,LE\e(B)
710 ("J" ?\e,L(\e(B)
711 ("K" ?\e,L:\e(B)
712 ("L" ?\e,L;\e(B)
713 (":" ?\e,LG\e(B)
714 ("\"" ?\e,L.\e(B)
715 ("|" ?\e,L6\e(B)
716 ("Z" ?\e,L%\e(B)
717 ("X" ?\e,L/\e(B)
718 ("C" ?\e,LF\e(B)
719 ("V" ?\e,L2\e(B)
720 ("B" ?\e,L1\e(B)
721 ("N" ?\e,L=\e(B)
722 ("M" ?\e,L<\e(B)
723 ("<" ?\;)
724 (">" ?:)
725 ("?" ?_))
726
727
728 (quail-define-package
729 "ukrainian-computer" "Ukrainian" "UK" nil
730 "\e$,1(9(F(C(:(5(=\e(B Ukrainian (Unicode-based for use with KOI8-U encoding)."
731 nil t t t t nil nil nil nil nil t)
732
733 ;; ' 1! 2" 3\e$,1uV\e(B 4; 5% 6: 7? 8* 9( 0) -_ =+
734 ;; \e$,1(9\e(B \e$,1(F\e(B \e$,1(C\e(B \e$,1(:\e(B \e$,1(5\e(B \e$,1(=\e(B \e$,1(3\e(B \e$,1(H\e(B \e$,1(I\e(B \e$,1(7\e(B \e$,1(E\e(B \e$,1('\e(B
735 ;; \e$,1(D\e(B \e$,1(&\e(B \e$,1(2\e(B \e$,1(0\e(B \e$,1(?\e(B \e$,1(@\e(B \e$,1(>\e(B \e$,1(;\e(B \e$,1(4\e(B \e$,1(6\e(B \e$,1($\e(B \e$,1)P\e(B
736 ;; \e$,1(O\e(B \e$,1(G\e(B \e$,1(A\e(B \e$,1(<\e(B \e$,1(8\e(B \e$,1(B\e(B \e$,1(L\e(B \e$,1(1\e(B \e$,1(N\e(B .,
737
738 (quail-define-rules
739 ("1" ?1)
740 ("2" ?2)
741 ("3" ?3)
742 ("4" ?4)
743 ("5" ?5)
744 ("6" ?6)
745 ("7" ?7)
746 ("8" ?8)
747 ("9" ?9)
748 ("0" ?0)
749 ("-" ?-)
750 ("=" ?=)
751 ("`" ?')
752 ("q" ?\e$,1(Y\e(B)
753 ("w" ?\e$,1(f\e(B)
754 ("e" ?\e$,1(c\e(B)
755 ("r" ?\e$,1(Z\e(B)
756 ("t" ?\e$,1(U\e(B)
757 ("y" ?\e$,1(]\e(B)
758 ("u" ?\e$,1(S\e(B)
759 ("i" ?\e$,1(h\e(B)
760 ("o" ?\e$,1(i\e(B)
761 ("p" ?\e$,1(W\e(B)
762 ("[" ?\e$,1(e\e(B)
763 ("]" ?\e$,1(w\e(B)
764 ("a" ?\e$,1(d\e(B)
765 ("s" ?\e$,1(v\e(B)
766 ("d" ?\e$,1(R\e(B)
767 ("f" ?\e$,1(P\e(B)
768 ("g" ?\e$,1(_\e(B)
769 ("h" ?\e$,1(`\e(B)
770 ("j" ?\e$,1(^\e(B)
771 ("k" ?\e$,1([\e(B)
772 ("l" ?\e$,1(T\e(B)
773 (";" ?\e$,1(V\e(B)
774 ("'" ?\e$,1(t\e(B)
775 ("z" ?\e$,1(o\e(B)
776 ("x" ?\e$,1(g\e(B)
777 ("c" ?\e$,1(a\e(B)
778 ("v" ?\e$,1(\\e(B)
779 ("b" ?\e$,1(X\e(B)
780 ("n" ?\e$,1(b\e(B)
781 ("m" ?\e$,1(l\e(B)
782 ("," ?\e$,1(Q\e(B)
783 ("." ?\e$,1(n\e(B)
784 ("/" ?.)
785 ("!" ?!)
786 ("@" ?\")
787 ("#" ?\e$,1uV\e(B)
788 ("$" ?\;)
789 ("%" ?%)
790 ("^" ?:)
791 ("&" ??)
792 ("*" ?*)
793 ("(" ?()
794 (")" ?))
795 ("_" ?_)
796 ("+" ?+)
797 ("~" ?')
798 ("Q" ?\e$,1(9\e(B)
799 ("W" ?\e$,1(F\e(B)
800 ("E" ?\e$,1(C\e(B)
801 ("R" ?\e$,1(:\e(B)
802 ("T" ?\e$,1(5\e(B)
803 ("Y" ?\e$,1(=\e(B)
804 ("U" ?\e$,1(3\e(B)
805 ("I" ?\e$,1(H\e(B)
806 ("O" ?\e$,1(I\e(B)
807 ("P" ?\e$,1(7\e(B)
808 ("{" ?\e$,1(E\e(B)
809 ("}" ?\e$,1('\e(B)
810 ("A" ?\e$,1(D\e(B)
811 ("S" ?\e$,1(&\e(B)
812 ("D" ?\e$,1(2\e(B)
813 ("F" ?\e$,1(0\e(B)
814 ("G" ?\e$,1(?\e(B)
815 ("H" ?\e$,1(@\e(B)
816 ("J" ?\e$,1(>\e(B)
817 ("K" ?\e$,1(;\e(B)
818 ("L" ?\e$,1(4\e(B)
819 (":" ?\e$,1(6\e(B)
820 ("\"" ?\e$,1($\e(B)
821 ("Z" ?\e$,1(O\e(B)
822 ("X" ?\e$,1(G\e(B)
823 ("C" ?\e$,1(A\e(B)
824 ("V" ?\e$,1(<\e(B)
825 ("B" ?\e$,1(8\e(B)
826 ("N" ?\e$,1(B\e(B)
827 ("M" ?\e$,1(L\e(B)
828 ("<" ?\e$,1(1\e(B)
829 (">" ?\e$,1(N\e(B)
830 ("?" ?,)
831 ("\\" ?\e$,1)Q\e(B)
832 ("|" ?\e$,1)P\e(B))
833 ;;
834
835 ;; Alexander Mikhailian says this is of limited use. It has been
836 ;; popular among emigrants or foreigners who have to type in Cyrillic
837 ;; (mostly Russian) from time to time.
838 (quail-define-package
839 "cyrillic-yawerty" "Cyrillic" "\e,L6O\e(B" nil
840 "\e,LO25@BK\e(B Roman transcription (ISO 8859-5 encoding)
841
842 This layout is based on Roman transcription by phonemic resemblance.
843 When preceded by a '/', the second and the third rows (number key row) change
844 as follows.
845
846 keytop | Q W E R T Y U I O P A S D
847 --------+---------------------------------------
848 input | \e,L"\e(B \e,L#\e(B \e,L$\e(B \e,L%\e(B \e,L&\e(B \e,L'\e(B \e,L(\e(B \e,L)\e(B \e,L*\e(B \e,L+\e(B \e,L,\e(B \e,L.\e(B \e,L/\e(B"
849 nil t t t t nil nil nil nil nil t)
850
851 ;; 1! 2\e,Lq\e(B 3\e,Lj\e(B 4\e,L!\e(B 5% 6^ 7& 8* 9( 0) -_ \e,LG\e(B \e,LN\e(B
852 ;; \e,LO\e(B \e,L2\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,LK\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,LI\e(B
853 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L9\e(B \e,L:\e(B \e,L;\e(B ;: '" \e,LM\e(B
854 ;; \e,L7\e(B \e,LL\e(B \e,LF\e(B \e,L6\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,< .> /?
855
856 ;; 1! 2\e,Lq\e(B 3\e,Lj\e(B 4\e,L!\e(B 5% 6^ 7& 8* 9( 0) -_ \e,LG\e(B \e,LN\e(B
857 ;; \e,L"\e(B \e,L#\e(B \e,L$\e(B \e,L%\e(B \e,L&\e(B \e,L'\e(B \e,L(\e(B \e,L)\e(B \e,L*\e(B \e,L+\e(B \e,LH\e(B \e,LI\e(B
858 ;; \e,L,\e(B \e,L.\e(B \e,L/\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L9\e(B \e,L:\e(B \e,L;\e(B ;: '" \e,LM\e(B
859 ;; \e,L7\e(B \e,LL\e(B \e,LF\e(B \e,L6\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,< .> /?
860
861 (quail-define-rules
862 ("1" ?1)
863 ("2" ?2)
864 ("3" ?3)
865 ("4" ?4)
866 ("5" ?5)
867 ("6" ?6)
868 ("7" ?7)
869 ("8" ?8)
870 ("9" ?9)
871 ("0" ?0)
872 ("-" ?-)
873 ("=" ?\e,Lg\e(B)
874 ("`" ?\e,Ln\e(B)
875 ("q" ?\e,Lo\e(B)
876 ("w" ?\e,LR\e(B)
877 ("e" ?\e,LU\e(B)
878 ("r" ?\e,L`\e(B)
879 ("t" ?\e,Lb\e(B)
880 ("y" ?\e,Lk\e(B)
881 ("u" ?\e,Lc\e(B)
882 ("i" ?\e,LX\e(B)
883 ("o" ?\e,L^\e(B)
884 ("p" ?\e,L_\e(B)
885 ("[" ?\e,Lh\e(B)
886 ("]" ?\e,Li\e(B)
887 ("a" ?\e,LP\e(B)
888 ("s" ?\e,La\e(B)
889 ("d" ?\e,LT\e(B)
890 ("f" ?\e,Ld\e(B)
891 ("g" ?\e,LS\e(B)
892 ("h" ?\e,Le\e(B)
893 ("j" ?\e,LY\e(B)
894 ("k" ?\e,LZ\e(B)
895 ("l" ?\e,L[\e(B)
896 (";" ?\;)
897 ("'" ?')
898 ("\\" ?\e,Lm\e(B)
899 ("z" ?\e,LW\e(B)
900 ("x" ?\e,Ll\e(B)
901 ("c" ?\e,Lf\e(B)
902 ("v" ?\e,LV\e(B)
903 ("b" ?\e,LQ\e(B)
904 ("n" ?\e,L]\e(B)
905 ("m" ?\e,L\\e(B)
906 ("," ?,)
907 ("." ?.)
908 ("/" ?/)
909
910 ("!" ?!)
911 ("@" ?\e,Lq\e(B)
912 ("#" ?\e,Lj\e(B)
913 ("$" ?\e,L!\e(B)
914 ("%" ?%)
915 ("^" ?^)
916 ("&" ?&)
917 ("*" ?*)
918 ("(" ?\()
919 (")" ?\))
920 ("_" ?_)
921 ("+" ?\e,LG\e(B)
922 ("~" ?\e,LN\e(B)
923 ("Q" ?\e,LO\e(B)
924 ("W" ?\e,L2\e(B)
925 ("E" ?\e,L5\e(B)
926 ("R" ?\e,L@\e(B)
927 ("T" ?\e,LB\e(B)
928 ("Y" ?\e,LK\e(B)
929 ("U" ?\e,LC\e(B)
930 ("I" ?\e,L8\e(B)
931 ("O" ?\e,L>\e(B)
932 ("P" ?\e,L?\e(B)
933 ("{" ?\e,LH\e(B)
934 ("}" ?\e,LI\e(B)
935 ("A" ?\e,L0\e(B)
936 ("S" ?\e,LA\e(B)
937 ("D" ?\e,L4\e(B)
938 ("F" ?\e,LD\e(B)
939 ("G" ?\e,L3\e(B)
940 ("H" ?\e,LE\e(B)
941 ("J" ?\e,L9\e(B)
942 ("K" ?\e,L:\e(B)
943 ("L" ?\e,L;\e(B)
944 (":" ?:)
945 ("\"" ?\")
946 ("|" ?\e,LM\e(B)
947 ("Z" ?\e,L7\e(B)
948 ("X" ?\e,LL\e(B)
949 ("C" ?\e,LF\e(B)
950 ("V" ?\e,L6\e(B)
951 ("B" ?\e,L1\e(B)
952 ("N" ?\e,L=\e(B)
953 ("M" ?\e,L<\e(B)
954 ("<" ?<)
955 (">" ?>)
956 ("?" ??)
957
958 ("/q" ?\e,Lr\e(B)
959 ("/w" ?\e,Ls\e(B)
960 ("/e" ?\e,Lt\e(B)
961 ("/r" ?\e,Lu\e(B)
962 ("/t" ?\e,Lv\e(B)
963 ("/y" ?\e,Lw\e(B)
964 ("/u" ?\e,Lx\e(B)
965 ("/i" ?\e,Ly\e(B)
966 ("/o" ?\e,Lz\e(B)
967 ("/p" ?\e,L{\e(B)
968 ("/a" ?\e,L|\e(B)
969 ("/s" ?\e,L~\e(B)
970 ("/d" ?\e,L\7f\e(B)
971
972 ("/Q" ?\e,L"\e(B)
973 ("/W" ?\e,L#\e(B)
974 ("/E" ?\e,L$\e(B)
975 ("/R" ?\e,L%\e(B)
976 ("/T" ?\e,L&\e(B)
977 ("/Y" ?\e,L'\e(B)
978 ("/U" ?\e,L(\e(B)
979 ("/I" ?\e,L)\e(B)
980 ("/O" ?\e,L*\e(B)
981 ("/P" ?\e,L+\e(B)
982 ("/A" ?\e,L,\e(B)
983 ("/S" ?\e,L.\e(B)
984 ("/D" ?\e,L/\e(B))
985
986 ;; This was provided by Valery Alexeev <valery@domovoy.math.uga.edu>.
987
988 ;; Ognyan Kulev <ogi@fmi.uni-sofia.bg> wrote:
989
990 ;; I would suggest future `cyrillic-translit' to be with the
991 ;; modification of `cyrillic-translit-bulgarian' applied and the
992 ;; latter to disappear. It could be used by people who write
993 ;; bulgarian e-mails with latin letters for kick start (phonetic input
994 ;; method is not so obvious as translit input method but each letter
995 ;; is one keypress and a *lot* of people know it).
996
997 ;; Anton Zinoviev <anton@lml.bas.bg> wrote:
998 ;; I would say that the main idea for cyrillic-translit is to be
999 ;; language-independent and universal. It should be able to generate all
1000 ;; Cyrillic symbols.
1001 (quail-define-package
1002 "cyrillic-translit" "Cyrillic" "\e,L6\e(Bt" t
1003 "Intuitively transliterated keyboard layout.
1004 Most convenient for entering Russian, but all Cyrillic characters
1005 are included. Should handle most cases. However:
1006 for \e,Lf\e(B (TSE) use \"c\", never \"ts\"
1007 \e,Li\e(B (SHCHA = Bulgarian SHT) = \"shch\", \"sj\", \"/sht\" or \"/t\",
1008 \e,Lm\e(B (REVERSE ROUNDED E) = \"e'\" or \"e`\"
1009 \e,Le\e(B (KHA) when after \e,La\e(B (S) = \"x\" or \"kh\"
1010 \e,Lj\e(B (HARD SIGN) = \"~\", \e,LJ\e(B (CAPITAL HARD SIGN) = \"~~\",
1011 \e,Ll\e(B (SOFT SIGN) = \"'\", \e,LL\e(B (CAPITAL SOFT SIGN) = \"''\",
1012 \e,Lo\e(B (YA) = \"ya\", \"ja\" or \"q\".
1013
1014 Russian alphabet: a b v=w g d e yo=jo zh z i j=j' k l m n o p r s t
1015 u f h=kh=x c ch sh shch=sj=/s=/sht ~ y ' e' yu=ju ya=ja=q
1016
1017 Also included are Ukrainian \e,Lt\e(B (YE) = \"/e\" and \e,Lw\e(B (YI) = \"yi\",
1018 Belarusian \e,L~\e(B (SHORT U) = \"u'\",
1019 Serbo-Croatian \e,Lr\e(B (DJE) = \"/d\", \e,L{\e(B (CHJE)= \"/ch\",
1020 Macedonian \e,Ls\e(B (GJE) = \"/g\", \e,Lu\e(B (DZE) = \"/s\", \e,L|\e(B (KJE) = \"/k\",
1021 cyrillic \e,Lv\e(B (I DECIMAL) = \"/i\", \e,Lx\e(B (JE) = \"/j\",
1022 \e,Ly\e(B (LJE) = \"/l\", \e,Lz\e(B (NJE) = \"/n\" and \e,L\7f\e(B (DZE) =\"/z\"."
1023 nil t t t t nil nil nil nil nil t)
1024
1025 (quail-define-rules
1026 ("a" ?\e,LP\e(B)("b" ?\e,LQ\e(B) ("v" ?\e,LR\e(B) ("w" ?\e,LR\e(B) ("g" ?\e,LS\e(B) ("d" ?\e,LT\e(B)
1027 ("e" ?\e,LU\e(B) ("je" ?\e,LU\e(B)
1028 ("yo" ?\e,Lq\e(B) ("jo" ?\e,Lq\e(B)
1029 ("zh" ?\e,LV\e(B) ("z" ?\e,LW\e(B) ("i" ?\e,LX\e(B)
1030 ("j" ?\e,LY\e(B) ("j'" ?\e,LY\e(B) ("j`" ?\e,LY\e(B) ("k" ?\e,LZ\e(B) ("l" ?\e,L[\e(B)
1031 ("m" ?\e,L\\e(B) ("n" ?\e,L]\e(B) ("o" ?\e,L^\e(B) ("p" ?\e,L_\e(B) ("r" ?\e,L`\e(B) ("s" ?\e,La\e(B) ("t" ?\e,Lb\e(B) ("u" ?\e,Lc\e(B)
1032 ("f" ?\e,Ld\e(B) ("x" ?\e,Le\e(B) ("h" ?\e,Le\e(B) ("kh" ?\e,Le\e(B)
1033 ("c" ?\e,Lf\e(B) ("ch" ?\e,Lg\e(B)
1034 ("sh" ?\e,Lh\e(B)
1035 ("shch" ?\e,Li\e(B) ("sj" ?\e,Li\e(B)
1036 ("/sht" ?\e,Li\e(B) ("/t" ?\e,Li\e(B)
1037 ("~" ?\e,Lj\e(B) ("y" ?\e,Lk\e(B) ("'" ?\e,Ll\e(B) ("`" ?\e,Ll\e(B)
1038 ("e'" ?\e,Lm\e(B) ("e`" ?\e,Lm\e(B) ("@" ?\e,Lm\e(B)
1039 ("yu" ?\e,Ln\e(B) ("ju" ?\e,Ln\e(B)
1040 ("ya" ?\e,Lo\e(B) ("ja" ?\e,Lo\e(B) ("q" ?\e,Lo\e(B)
1041
1042 ("A" ?\e,L0\e(B) ("B" ?\e,L1\e(B) ("V" ?\e,L2\e(B) ("W" ?\e,L2\e(B) ("G" ?\e,L3\e(B) ("D" ?\e,L4\e(B)
1043 ("E" ?\e,L5\e(B) ("Je" ?\e,L5\e(B) ("JE" ?\e,L5\e(B)
1044 ("Yo" ?\e,L!\e(B) ("YO" ?\e,L!\e(B) ("Jo" ?\e,L!\e(B) ("JO" ?\e,L!\e(B)
1045 ("Zh" ?\e,L6\e(B) ("ZH" ?\e,L6\e(B) ("Z" ?\e,L7\e(B) ("I" ?\e,L8\e(B)
1046 ("J" ?\e,L9\e(B) ("J'" ?\e,L9\e(B) ("J`" ?\e,L9\e(B) ("K" ?\e,L:\e(B) ("L" ?\e,L;\e(B)
1047 ("M" ?\e,L<\e(B) ("N" ?\e,L=\e(B) ("O" ?\e,L>\e(B) ("P" ?\e,L?\e(B) ("R" ?\e,L@\e(B) ("S" ?\e,LA\e(B) ("T" ?\e,LB\e(B) ("U" ?\e,LC\e(B)
1048 ("F" ?\e,LD\e(B) ("X" ?\e,LE\e(B) ("H" ?\e,LE\e(B) ("Kh" ?\e,LE\e(B) ("KH" ?\e,LE\e(B)
1049 ("C" ?\e,LF\e(B) ("Ch" ?\e,LG\e(B) ("CH" ?\e,LG\e(B)
1050 ("Sh" ?\e,LH\e(B) ("SH" ?\e,LH\e(B)
1051 ("Shch" ?\e,LI\e(B) ("SHCH" ?\e,LI\e(B) ("Sj" ?\e,LI\e(B) ("SJ" ?\e,LI\e(B)
1052 ("/Sht" ?\e,LI\e(B) ("/SHT" ?\e,LI\e(B) ("/T" ?\e,LI\e(B)
1053 ("~~" "\e,LJ\e(B") ("Y" ?\e,LK\e(B) ("''" "\e,LL\e(B") ("E'" ?\e,LM\e(B) ("E`" ?\e,LM\e(B)
1054 ("Yu" ?\e,LN\e(B) ("YU" ?\e,LN\e(B) ("Ju" ?\e,LN\e(B) ("JU" ?\e,LN\e(B)
1055 ("Ya" ?\e,LO\e(B) ("YA" ?\e,LO\e(B) ("Ja" ?\e,LO\e(B) ("JA" ?\e,LO\e(B) ("Q" ?\e,LO\e(B)
1056
1057 ("/e" ?\e,Lt\e(B) ("yi" ?\e,Lw\e(B) ("u'" ?\e,L~\e(B)
1058 ("/d" ?\e,Lr\e(B) ("/ch" ?\e,L{\e(B)
1059 ("/g" ?\e,Ls\e(B) ("/s" ?\e,Lu\e(B) ("/k" ?\e,L|\e(B)
1060 ("/i" ?\e,Lv\e(B) ("/j" ?\e,Lx\e(B) ("/l" ?\e,Ly\e(B) ("/n" ?\e,Lz\e(B) ("/z" ?\e,L\7f\e(B)
1061 ("/E" ?\e,L$\e(B) ("YE" ?\e,L$\e(B) ("Yi" ?\e,L'\e(B) ("YI" ?\e,L'\e(B) ("U'" ?\e,L.\e(B)
1062 ("/D" ?\e,L"\e(B) ("/Ch" ?\e,L+\e(B) ("/CH" ?\e,L+\e(B)
1063 ("/G" ?\e,L#\e(B) ("/S" ?\e,L%\e(B) ("/K" ?\e,L,\e(B)
1064 ("/I" ?\e,L&\e(B) ("/J" ?\e,L(\e(B) ("/L" ?\e,L)\e(B) ("/N" ?\e,L*\e(B) ("/Z" ?\e,L/\e(B)
1065 )
1066
1067 ;; Originally from Yudit's `Belarusian input table according to
1068 ;; STB955-94 belarusian standard' (not all) by Alexander Mikhailian
1069 ;; <mikhailian@altern.org>, subsequently amended by AM.
1070 (quail-define-package
1071 "belarusian" "Belarusian" "BE" nil
1072 "\e$,1(9(F(C(:(5(=\e(B keyboard layout registered as STB955-94 Belarusian standard.
1073 Unicode based."
1074 nil t t t t nil nil nil nil nil t)
1075
1076 ;; \e$,1(q(!\e(B 1! 2" 3N 4; 5% 6: 7? 8* 9( 0) -_ =+
1077 ;; \e$,1(9\e(B \e$,1(F\e(B \e$,1(C\e(B \e$,1(:\e(B \e$,1(5\e(B \e$,1(=\e(B \e$,1(3\e(B \e$,1(H\e(B \e$,1(.\e(B \e$,1(7\e(B \e$,1(E\e(B '
1078 ;; \e$,1(D\e(B \e$,1(K\e(B \e$,1(2\e(B \e$,1(0\e(B \e$,1(?\e(B \e$,1(@\e(B \e$,1(>\e(B \e$,1(;\e(B \e$,1(4\e(B \e$,1(6\e(B \e$,1(M\e(B
1079 ;; \e$,1(O\e(B \e$,1(G\e(B \e$,1(A\e(B \e$,1(<\e(B \e$,1(&\e(B \e$,1(B\e(B \e$,1(L\e(B \e$,1(1\e(B \e$,1(N\e(B .,
1080
1081 (quail-define-rules
1082 ("~" ?\e$,1(!\e(B)
1083 ("@" ?\")
1084 ("#" ?\e$,1uV\e(B)
1085 ("$" ?\;)
1086 ("%" ?%)
1087 ("^" ?:)
1088 ("&" ??)
1089 ("Q" ?\e$,1(9\e(B)
1090 ("W" ?\e$,1(F\e(B)
1091 ("E" ?\e$,1(C\e(B)
1092 ("R" ?\e$,1(:\e(B)
1093 ("T" ?\e$,1(5\e(B)
1094 ("Y" ?\e$,1(=\e(B)
1095 ("U" ?\e$,1(3\e(B)
1096 ("I" ?\e$,1(H\e(B)
1097 ("O" ?\e$,1(.\e(B)
1098 ("P" ?\e$,1(7\e(B)
1099 ("{" ?\e$,1(E\e(B)
1100 ("}" ?')
1101 ("A" ?\e$,1(D\e(B)
1102 ("S" ?\e$,1(K\e(B)
1103 ("D" ?\e$,1(2\e(B)
1104 ("F" ?\e$,1(0\e(B)
1105 ("G" ?\e$,1(?\e(B)
1106 ("H" ?\e$,1(@\e(B)
1107 ("J" ?\e$,1(>\e(B)
1108 ("K" ?\e$,1(;\e(B)
1109 ("L" ?\e$,1(4\e(B)
1110 (":" ?\e$,1(6\e(B)
1111 ("\"" ?\e$,1(M\e(B)
1112 ("|" ?|)
1113 ("Z" ?\e$,1(O\e(B)
1114 ("X" ?\e$,1(G\e(B)
1115 ("C" ?\e$,1(A\e(B)
1116 ("V" ?\e$,1(<\e(B)
1117 ("B" ?\e$,1(&\e(B)
1118 ("N" ?\e$,1(B\e(B)
1119 ("M" ?\e$,1(L\e(B)
1120 ("<" ?\e$,1(1\e(B)
1121 (">" ?\e$,1(N\e(B)
1122 ("?" ?,)
1123
1124 ("`" ?\e$,1(q\e(B)
1125 ("q" ?\e$,1(Y\e(B)
1126 ("w" ?\e$,1(f\e(B)
1127 ("e" ?\e$,1(c\e(B)
1128 ("r" ?\e$,1(Z\e(B)
1129 ("t" ?\e$,1(U\e(B)
1130 ("y" ?\e$,1(]\e(B)
1131 ("u" ?\e$,1(S\e(B)
1132 ("i" ?\e$,1(h\e(B)
1133 ("o" ?\e$,1(~\e(B)
1134 ("p" ?\e$,1(W\e(B)
1135 ("[" ?\e$,1(e\e(B)
1136 ("]" ?')
1137 ("a" ?\e$,1(d\e(B)
1138 ("s" ?\e$,1(k\e(B)
1139 ("d" ?\e$,1(R\e(B)
1140 ("f" ?\e$,1(P\e(B)
1141 ("g" ?\e$,1(_\e(B)
1142 ("h" ?\e$,1(`\e(B)
1143 ("j" ?\e$,1(^\e(B)
1144 ("k" ?\e$,1([\e(B)
1145 ("l" ?\e$,1(T\e(B)
1146 (";" ?\e$,1(V\e(B)
1147 ("'" ?\e$,1(m\e(B)
1148 ("z" ?\e$,1(o\e(B)
1149 ("x" ?\e$,1(g\e(B)
1150 ("c" ?\e$,1(a\e(B)
1151 ("v" ?\e$,1(\\e(B)
1152 ("b" ?\e$,1(v\e(B)
1153 ("n" ?\e$,1(b\e(B)
1154 ("m" ?\e$,1(l\e(B)
1155 ("," ?\e$,1(Q\e(B)
1156 ("." ?\e$,1(n\e(B)
1157 ("/" ?.))
1158
1159 ;; From `Bulgarian-PHO.kmap for Yudit', Alexander Shopov
1160 ;; <al_shopov@web.bg>.
1161
1162 ;; Extra commentary and the indicator from an independent
1163 ;; (cyrillic-iso8859-5) implementation by Ognyan Kulev
1164 ;; <ogi@fmi.uni-sofia.bg> and name changes from Anton Zinoviev
1165 ;; <anton@lml.bas.bg>.
1166 (quail-define-package
1167 "bulgarian-phonetic" "Bulgarian" "\e$,1(6(1(D\e(B"
1168 nil
1169 "Bulgarian Phonetic keyboard layout, producing Unicode.
1170
1171 The layout is similar to `cyrillic-translit', but all Bulgarian
1172 characters are typed with a single key.
1173
1174 Use /& for \e,A'\e(B (Cyrillic paragraph) and /# for \e$,1uV\e(B.
1175
1176 The letters \e$,1(G\e(B, \e$,1(H\e(B, \e$,1(I\e(B and \e$,1(N\e(B are not affected by Caps Lock."
1177 nil t t t t nil nil nil nil nil t)
1178
1179 ;; \e$,1(G\e(B
1180 ;; \e$,1(O\e(B \e$,1(2\e(B \e$,1(5\e(B \e$,1(@\e(B \e$,1(B\e(B \e$,1(J\e(B \e$,1(C\e(B \e$,1(8\e(B \e$,1(>\e(B \e$,1(?\e(B \e$,1(H\e(B \e$,1(I\e(B
1181 ;; \e$,1(0\e(B \e$,1(A\e(B \e$,1(4\e(B \e$,1(D\e(B \e$,1(3\e(B \e$,1(E\e(B \e$,1(9\e(B \e$,1(:\e(B \e$,1(;\e(B \e$,1(N\e(B
1182 ;; \e$,1(7\e(B \e$,1(L\e(B \e$,1(F\e(B \e$,1(6\e(B \e$,1(1\e(B \e$,1(=\e(B \e$,1(<\e(B
1183
1184 (quail-define-rules
1185 ("/&" ?\e,A'\e(B)
1186 ("/#" ?\e$,1uV\e(B)
1187 ("A" ?\e$,1(0\e(B)
1188 ("B" ?\e$,1(1\e(B)
1189 ("W" ?\e$,1(2\e(B)
1190 ("G" ?\e$,1(3\e(B)
1191 ("D" ?\e$,1(4\e(B)
1192 ("E" ?\e$,1(5\e(B)
1193 ("V" ?\e$,1(6\e(B)
1194 ("Z" ?\e$,1(7\e(B)
1195 ("I" ?\e$,1(8\e(B)
1196 ("J" ?\e$,1(9\e(B)
1197 ("K" ?\e$,1(:\e(B)
1198 ("L" ?\e$,1(;\e(B)
1199 ("M" ?\e$,1(<\e(B)
1200 ("N" ?\e$,1(=\e(B)
1201 ("O" ?\e$,1(>\e(B)
1202 ("P" ?\e$,1(?\e(B)
1203 ("R" ?\e$,1(@\e(B)
1204 ("S" ?\e$,1(A\e(B)
1205 ("T" ?\e$,1(B\e(B)
1206 ("U" ?\e$,1(C\e(B)
1207 ("F" ?\e$,1(D\e(B)
1208 ("H" ?\e$,1(E\e(B)
1209 ("C" ?\e$,1(F\e(B)
1210 ("~" ?\e$,1(G\e(B)
1211 ("{" ?\e$,1(H\e(B)
1212 ("}" ?\e$,1(I\e(B)
1213 ("Y" ?\e$,1(J\e(B)
1214 ("X" ?\e$,1(L\e(B)
1215 ("|" ?\e$,1(N\e(B)
1216 ("Q" ?\e$,1(O\e(B)
1217 ("a" ?\e$,1(P\e(B)
1218 ("b" ?\e$,1(Q\e(B)
1219 ("w" ?\e$,1(R\e(B)
1220 ("g" ?\e$,1(S\e(B)
1221 ("d" ?\e$,1(T\e(B)
1222 ("e" ?\e$,1(U\e(B)
1223 ("v" ?\e$,1(V\e(B)
1224 ("z" ?\e$,1(W\e(B)
1225 ("i" ?\e$,1(X\e(B)
1226 ("j" ?\e$,1(Y\e(B)
1227 ("k" ?\e$,1(Z\e(B)
1228 ("l" ?\e$,1([\e(B)
1229 ("m" ?\e$,1(\\e(B)
1230 ("n" ?\e$,1(]\e(B)
1231 ("o" ?\e$,1(^\e(B)
1232 ("p" ?\e$,1(_\e(B)
1233 ("r" ?\e$,1(`\e(B)
1234 ("s" ?\e$,1(a\e(B)
1235 ("t" ?\e$,1(b\e(B)
1236 ("u" ?\e$,1(c\e(B)
1237 ("f" ?\e$,1(d\e(B)
1238 ("h" ?\e$,1(e\e(B)
1239 ("c" ?\e$,1(f\e(B)
1240 ("`" ?\e$,1(g\e(B)
1241 ("[" ?\e$,1(h\e(B)
1242 ("]" ?\e$,1(i\e(B)
1243 ("y" ?\e$,1(j\e(B)
1244 ("x" ?\e$,1(l\e(B)
1245 ("\\" ?\e$,1(n\e(B)
1246 ("q" ?\e$,1(o\e(B))
1247
1248 ;; Based on an implementation by Ognyan Kulev <ogi@fmi.uni-sofia.bg>.
1249 ;; This follows XKB bg.
1250
1251 (quail-define-package
1252 "bulgarian-bds" "Bulgarian" "\e$,1(1(4(A\e(B" nil
1253 "Bulgarian standard keyboard layout (BDS)
1254
1255 This keyboard layout is standard for Bulgarian typewriters.
1256
1257 The letters \e$,1(F\e(B, \e$,1(<\e(B, \e$,1(G\e(B, \e$,1(@\e(B, \e$,1(;\e(B, \e$,1(1\e(B and \e$,1(K\e(B are not affected by Caps Lock.
1258
1259 In addition to original Bulgarian typewriter layout, keys \\ and |
1260 are transformed into ' and \e$,1(K\e(B respectively. Some keyboards mark these
1261 keys as being transformed into ( and ) respectively. For ( and ), use
1262 ` and ~ respectively. This input method follows XKB."
1263 nil t t t t nil nil nil nil nil t)
1264
1265 ;; () 1! 2? 3+ 4" 5% 6= 7: 8/ 9_ 0\e$,1uV\e(B -I .V
1266 ;; ,\e$,1(k\e(B \e$,1(C\e(B \e$,1(5\e(B \e$,1(8\e(B \e$,1(H\e(B \e$,1(I\e(B \e$,1(:\e(B \e$,1(A\e(B \e$,1(4\e(B \e$,1(7\e(B \e$,1(F\e(B ;\e,A'\e(B
1267 ;; \e$,1(L\e(B \e$,1(O\e(B \e$,1(0\e(B \e$,1(>\e(B \e$,1(6\e(B \e$,1(3\e(B \e$,1(B\e(B \e$,1(=\e(B \e$,1(2\e(B \e$,1(<\e(B \e$,1(G\e(B '\e$,1(K\e(B
1268 ;; \e$,1(N\e(B \e$,1(9\e(B \e$,1(J\e(B \e$,1(M\e(B \e$,1(D\e(B \e$,1(E\e(B \e$,1(?\e(B \e$,1(@\e(B \e$,1(;\e(B \e$,1(1\e(B
1269
1270 (quail-define-rules
1271
1272 ("1" ?1) ("!" ?!)
1273 ("2" ?2) ("@" ??)
1274 ("3" ?3) ("#" ?+)
1275 ("4" ?4) ("$" ?\")
1276 ("5" ?5) ("%" ?%)
1277 ("6" ?6) ("^" ?=)
1278 ("7" ?7) ("&" ?:)
1279 ("8" ?8) ("*" ?/)
1280 ("9" ?9) ("(" ?_)
1281 ("0" ?0) (")" ?\e$,1uV\e(B)
1282 ("-" ?-) ("_" ?I)
1283 ("=" ?.) ("+" ?V)
1284
1285 ("q" ?,) ("Q" ?\e$,1(k\e(B)
1286 ("w" ?\e$,1(c\e(B) ("W" ?\e$,1(C\e(B)
1287 ("e" ?\e$,1(U\e(B) ("E" ?\e$,1(5\e(B)
1288 ("r" ?\e$,1(X\e(B) ("R" ?\e$,1(8\e(B)
1289 ("t" ?\e$,1(h\e(B) ("T" ?\e$,1(H\e(B)
1290 ("y" ?\e$,1(i\e(B) ("Y" ?\e$,1(I\e(B)
1291 ("u" ?\e$,1(Z\e(B) ("U" ?\e$,1(:\e(B)
1292 ("i" ?\e$,1(a\e(B) ("I" ?\e$,1(A\e(B)
1293 ("o" ?\e$,1(T\e(B) ("O" ?\e$,1(4\e(B)
1294 ("p" ?\e$,1(W\e(B) ("P" ?\e$,1(7\e(B)
1295 ("[" ?\e$,1(f\e(B) ("{" ?\e$,1(F\e(B)
1296 ("]" ?\;) ("}" ?\e,A'\e(B)
1297
1298 ("a" ?\e$,1(l\e(B) ("A" ?\e$,1(L\e(B)
1299 ("s" ?\e$,1(o\e(B) ("S" ?\e$,1(O\e(B)
1300 ("d" ?\e$,1(P\e(B) ("D" ?\e$,1(0\e(B)
1301 ("f" ?\e$,1(^\e(B) ("F" ?\e$,1(>\e(B)
1302 ("g" ?\e$,1(V\e(B) ("G" ?\e$,1(6\e(B)
1303 ("h" ?\e$,1(S\e(B) ("H" ?\e$,1(3\e(B)
1304 ("j" ?\e$,1(b\e(B) ("J" ?\e$,1(B\e(B)
1305 ("k" ?\e$,1(]\e(B) ("K" ?\e$,1(=\e(B)
1306 ("l" ?\e$,1(R\e(B) ("L" ?\e$,1(2\e(B)
1307 (";" ?\e$,1(\\e(B) (":" ?\e$,1(<\e(B)
1308 ("'" ?\e$,1(g\e(B) ("\"" ?\e$,1(G\e(B)
1309 ("`" ?\() ("~" ?\))
1310
1311 ("z" ?\e$,1(n\e(B) ("Z" ?\e$,1(N\e(B)
1312 ("x" ?\e$,1(Y\e(B) ("X" ?\e$,1(9\e(B)
1313 ("c" ?\e$,1(j\e(B) ("C" ?\e$,1(J\e(B)
1314 ("v" ?\e$,1(m\e(B) ("V" ?\e$,1(M\e(B)
1315 ("b" ?\e$,1(d\e(B) ("B" ?\e$,1(D\e(B)
1316 ("n" ?\e$,1(e\e(B) ("N" ?\e$,1(E\e(B)
1317 ("m" ?\e$,1(_\e(B) ("M" ?\e$,1(?\e(B)
1318 ("," ?\e$,1(`\e(B) ("<" ?\e$,1(@\e(B)
1319 ("." ?\e$,1([\e(B) (">" ?\e$,1(;\e(B)
1320 ("/" ?\e$,1(Q\e(B) ("?" ?\e$,1(1\e(B)
1321 ("\\" ?') ("|" ?\e$,1(K\e(B))
1322
1323 ;; Local Variables:
1324 ;; coding: iso-2022-7bit
1325 ;; End:
1326
1327 ;;; arch-tag: e6d34b16-8710-4181-a17e-819a1df0334f
1328 ;;; cyrillic.el ends here