;; slavonic.el --- Slavonic input method ;; $Id: slavonic.el,v 1.4 2009/11/01 07:30:51 isao Exp $ ;; Copyright (C) 2004 by Free Software Foundation, Inc. ;; Author: Isao YASUDA ;; Keywords: Cyrillic Generic Input Method Unicode Old-slavonic ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Generic input method for Cyrillic, Old slavonic ;;; - Apr.17 2004, initial. ;;; Code: (require 'quail) (quail-define-package "slavonic" "Slavonic" "$,1(A(;(B" t "$,1(A([(P(R(o(](a(Z(P(o(B $,1(Z([(P(R(X(P(b(c(`(P(B - Roman transcription (UNICODE) - Keyboard Layout (US 101): $,1(N(B(`) 1(1) 2(2) 3(3) 4(4) 5(5) 6(6) 7(7) 8(8) 9(9) 0(0) -(-) $,1(G(B(=) $,1(O(B(Q) $,1(2(B(W) $,1(5(B(E) $,1(@(B(R) $,1(B(B(T) $,1(K(B(Y) $,1(C(B(U) $,1(8(B(I) $,1(>(B(O) $,1(?(B(P) $,1(H(B([) $,1(I(B(]) $,1(M(B(\\) $,1(0(B(A) $,1(A(B(S) $,1(4(B(D) $,1(D(B(F) $,1(3(B(G) $,1(E(B(H) $,1(9(B(J) $,1(:(B(K) $,1(;(B(L) ... $,1(7(B(Z) $,1(L(B(X) $,1(F(B(C) $,1(6(B(V) $,1(1(B(B) $,1(=(B(N) $,1(<(B(M) ... $,1(J(B -> X' - Basic Cyrillic characters: $,1(G(B -> + $,1(g(B -> = $,1(N(B -> ~ $,1(n(B -> ` $,1(!(B -> E\" $,1(M(B -> E\\ $,1(J(B -> X' $,1(L(B -> X $,1(&(B -> I/ $,1('(B -> I\" $,1(((B -> J/ $,1()(B -> L/ $,1(*(B -> N/ $,1(+(B -> T/ $,1($(B -> E/ $,1(%(B -> D/ $,1("(B -> D\\ $,1(#(B -> G' $,1(,(B -> K' $,1(-(B -> I` $,1(.(B -> U^ $,1(/(B -> D' $,1( (B -> E` ,A+(B -> /< ,A;(B -> /> - Old Church Slavonic characters: $,1) (B -> O_ $,1)"(B -> E_ $,1)$(B -> I_ $,1)&(B -> Q/ $,1)((B -> Q\\ $,1)*(B -> U_ $,1),(B -> U/ $,1).(B -> K^ $,1)0(B -> P^ $,1)2(B -> F/ $,1)4(B -> I| $,1)6(B -> I: $,1)8(B -> OU $,1):(B -> O| $,1)<(B -> O' $,1)>(B -> O~ $,1)@(B -> K/ $,1)B(B -> /\\ $,1)C(B -> /- $,1)D(B -> /~ $,1)H(B -> /: $,1)I(B -> /; - Other Signs ` -> `` ~ -> ~~ = -> /= + -> /+ [ -> /[ ] -> /] { -> /{ } -> /} | -> /| \\ -> \\\\ $,1%A(B(accent acute) -> /' $,1%@(B(accent greve) -> /`" ;; nil t t t t nil nil nil nil nil t) nil t t nil nil nil nil nil nil nil t) (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?-) ("!" ?!) ("%" ?%) ("&" ?&) ("^" ?^) ("_" ?_) ("'" ?') ("\"" ?\") ("(" ?\() (")" ?\)) ("*" ?*) (">" ?>) ("?" ??) ("," ?,) ("." ?.) ("/" ?/) (":" ?:) (";" ?\;) ("<" ?<) ("/<" ?,A+(B) ;; 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ("/>" ?,A;(B) ;; 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ;; Cyrillic characters ("+" ?$,1(G(B) ;; 0427 ("++" ?+) ;; + ("/+" ?+) ;; + ("+," ?$,1)v(B) ;; 04B6 ("+/" ?$,1*+(B) ;; 04CB ("+\"" ?$,1*T(B) ;; 04F4 ("+|" ?$,1)x(B) ;; 04B8 ("=" ?$,1(g(B) ;; 0447 ("==" ?=) ;; = ("/=" ?=) ;; = ("=," ?$,1)w(B) ;; 04B7 ("=/" ?$,1*,(B) ;; 04CC ("=\"" ?$,1*U(B) ;; 04F5 ("=|" ?$,1)y(B) ;; 04B9 ("A" ?$,1(0(B) ;; 0410 ("A\"" ?$,1*2(B) ;; 04D2 ("A^" ?$,1*0(B) ;; 04D0 ("A|" ?$,1*4(B) ;; 04D4 ("B" ?$,1(1(B) ;; 0411 ("C" ?$,1(F(B) ;; 0426 ("C," ?$,1)t(B) ;; 04B4 ("D" ?$,1(4(B) ;; 0414 ("D'" ?$,1(/(B) ;; 040F ("D/" ?$,1(%(B) ;; 0405 ("D\\" ?$,1("(B) ;; 0402 ("E" ?$,1(5(B) ;; 0415 ("E," ?$,1)~(B) ;; 04BE ("E/" ?$,1($(B) ;; 0404 ("E`" ?$,1( (B) ;; 0400 ("E\"" ?$,1(!(B) ;; 0401 ("E\\" ?$,1(M(B) ;; 042D ("E\\\"" ?$,1*L(B) ;; 04EC ("E^" ?$,1*6(B) ;; 04D6 ("E_" ?$,1)"(B) ;; 0462 YAT ("E~" ?$,1)|(B) ;; 04BC ("F" ?$,1(D(B) ;; 0424 ("F/" ?$,1)2(B) ;; 0472 FITA ("G" ?$,1(3(B) ;; 0413 ("G," ?$,1)P(B) ;; 0490 ("G'" ?$,1(#(B) ;; 0403 ("G_" ?$,1)R(B) ;; 0492 ("G|" ?$,1)T(B) ;; 0494 ("H" ?$,1(E(B) ;; 0425 ("H," ?$,1)r(B) ;; 04B2 ("H@" ?$,1)h(B) ;; 04A8 ("H|" ?$,1)z(B) ;; 04BA ("I" ?$,1(8(B) ;; 0438 ("I/" ?$,1(&(B) ;; 0406 ("I:" ?$,1)6(B) ;; 0476 ("I;" ?$,1*D(B) ;; 04E4 ("I\"" ?$,1('(B) ;; 0407 ("I\\" ?$,1* (B) ;; 04C0 ("I^" ?$,1*B(B) ;; 04E2 ("I_" ?$,1)$(B) ;; 0464 ("I`" ?$,1(-(B) ;; 040D ("I|" ?$,1)4(B) ;; 0474 ("J" ?$,1(9(B) ;; 0419 ("J," ?$,1)J(B) ;; 048A ("J/" ?$,1(((B) ;; 0408 ("K" ?$,1(:(B) ;; 041A ("K'" ?$,1(,(B) ;; 040C ("K," ?$,1)Z(B) ;; 049A ("K-" ?$,1)^(B) ;; 049E ("K/" ?$,1)@(B) ;; 0480 ("K;" ?$,1*#(B) ;; 04C3 ("K^" ?$,1).(B) ;; 046E ("K|" ?$,1)\(B) ;; 049C ("K~" ?$,1)`(B) ;; 04A0 ("L" ?$,1(;(B) ;; 041B ("L," ?$,1*%(B) ;; 04C5 ("L/" ?$,1()(B) ;; 0409 ("M" ?$,1(<(B) ;; 041C ("M," ?$,1*-(B) ;; 04CD ("N" ?$,1(=(B) ;; 041D ("N," ?$,1)b(B) ;; 04A2 ("N\\" ?$,1)d(B) ;; 04A4 ("N;" ?$,1*'(B) ;; 04C7 ("N/" ?$,1(*(B) ;; 040A ("N|" ?$,1*)(B) ;; 04C9 ("O" ?$,1(>(B) ;; 041E ("O'" ?$,1)<(B) ;; 047C OMEGA WITH TITLO ("O-" ?$,1*H(B) ;; 04E8 BARRED O ("O-\"" ?$,1*J(B) ;; 04EA BARRED O WITH DIAERESIS ("OU" ?$,1)8(B) ;; 0478 UK ("O\"" ?$,1*F(B) ;; 04E6 O WITH DIAERESIS ("O_" ?$,1) (B) ;; 0460 OMEGA ("O|" ?$,1):(B) ;; 047A ROUND OMEGA ("O~" ?$,1)>(B) ;; 047E OT ("P" ?$,1(?(B) ;; 041F ("P," ?$,1)f(B) ;; 04A6 PE WITH MIDDLE HOOK ("P^" ?$,1)0(B) ;; 0470 PSI ("Q" ?$,1(O(B) ;; 042F ("Q/" ?$,1)&(B) ;; 0466 LITTLE YUS ("Q\\" ?$,1)((B) ;; 0468 IOTIFIED LITTLE YUS ("R" ?$,1(@(B) ;; 0420 ("R," ?$,1)N(B) ;; 048E ER WITH TICK ("S" ?$,1(A(B) ;; 0421 ("S," ?$,1)j(B) ;; 04AA ES WITH DESCENDER ("S|\"" ?$,1*:(B) ;; 04DA SCHWA WITH DIAERESIS ("S|" ?$,1*8(B) ;; 04D8 SCHWA ("T" ?$,1(B(B) ;; 0422 ("T," ?$,1)l(B) ;; 04AC TE WITH DESCENDER ("T/" ?$,1(+(B) ;; 040B ("U" ?$,1(C(B) ;; 0423 ("U/" ?$,1),(B) ;; 046C IOTIFIED BIG YUS ("U;" ?$,1*R(B) ;; 04F2 U WITH DOUBLE ACUTE ("U\"" ?$,1*P(B) ;; 04F0 U WITH DIARESIS ("U^" ?$,1(.(B) ;; 040E SHORT U ("U_" ?$,1)*(B) ;; 046A BIG YUS ("U-" ?$,1*N(B) ;; 04EE U WITH MACRON ("V" ?$,1(6(B) ;; 0416 ("V," ?$,1)V(B) ;; 0496 ZHE WITH DESCENDER ("V\"" ?$,1*<(B) ;; 04DC ZHE WITH DIARESIS ("V^" ?$,1*!(B) ;; 04C1 ZHE WITH BRAVE ("W" ?$,1(2(B) ;; 0412 ("X" ?$,1(L(B) ;; 042C SOFT SIGN ("X'" ?$,1(J(B) ;; 042A HARD SIGN ("X/" ?$,1)L(B) ;; 048C SEMISOFT SIGN ("Y" ?$,1(K(B) ;; 042B ("Y-" ?$,1)p(B) ;; 04B0 STRAIGHT U WITH STROKE ("Y\"" ?$,1*X(B) ;; 04F8 YERU WITH DIAERESIS ("Y|" ?$,1)n(B) ;; 04AE STRAIGHT U ("Z" ?$,1(7(B) ;; 0417 ("Z," ?$,1)X(B) ;; 0498 ZE WITH DESCENDER ("Z\"" ?$,1*>(B) ;; 04DE ZE WITH DIAERESIS ("Z|" ?$,1*@(B) ;; 04E0 ABKHASIAN DZE ("[" ?$,1(h(B) ;; 0448 ("[[" ?[) ;; [ ("/[" ?[) ;; [ ("\\" ?$,1(m(B) ;; 044D ("\\\\" ?\\) ;; ("|" ?$,1(M(B) ;; 042D ("||" ?|) ;; | ("/|" ?|) ;; | ("]" ?$,1(i(B) ;; 0449 ("]]" ?]) ;; ] ("/]" ?]) ;; ] ("`" ?$,1(n(B) ;; 044E ("``" ?`) ;; ` backquote ("a" ?$,1(P(B) ;; 0430 ("a\"" ?$,1*3(B) ;; 04D3 ("a^" ?$,1*1(B) ;; 04D1 ("a|" ?$,1*5(B) ;; 04D5 ("b" ?$,1(Q(B) ;; 0431 ("c" ?$,1(f(B) ;; 0446 ("c," ?$,1)u(B) ;; 04B5 ("d" ?$,1(T(B) ;; 0434 ("d'" ?$,1((B) ;; 045f ("d/" ?$,1(u(B) ;; 0455 ("d\\" ?$,1(r(B) ;; 0452 ("e" ?$,1(U(B) ;; 0435 ("e," ?$,1)(B) ;; 04BF ("e/" ?$,1(t(B) ;; 0454 ("e\"" ?$,1(q(B) ;; 0451 ("e\\" ?$,1(m(B) ;; 0437 ("e\\\"" ?$,1*M(B) ;; 04ED ("e^" ?$,1*7(B) ;; 04D7 ("e_" ?$,1)#(B) ;; 0463 ("e`" ?$,1(p(B) ;; 0450 ("e~" ?$,1)}(B) ;; 04BD ("f" ?$,1(d(B) ;; 0444 ("f/" ?$,1)3(B) ;; 0473 ("g" ?$,1(S(B) ;; 0433 ("g," ?$,1)Q(B) ;; 0491 ("g'" ?$,1(s(B) ;; 0453 ("g_" ?$,1)S(B) ;; 0493 ("g|" ?$,1)U(B) ;; 0495 ("h" ?$,1(e(B) ;; 0445 ("h," ?$,1)s(B) ;; 04B3 ("h@" ?$,1)i(B) ;; 04A9 ("h|" ?$,1){(B) ;; 04BB ("i" ?$,1(X(B) ;; 0438 ("i/" ?$,1(v(B) ;; 0456 ("i:" ?$,1)7(B) ;; 0477 ("i;" ?$,1*E(B) ;; 04E5 ("i\"" ?$,1(w(B) ;; 0457 ("i^" ?$,1*C(B) ;; 04E3 ("i_" ?$,1)%(B) ;; 0465 ("i`" ?$,1(}(B) ;; 045d ("i|" ?$,1)5(B) ;; 0475 ("j" ?$,1(Y(B) ;; 0439 ("j," ?$,1)K(B) ;; 048B ("j/" ?$,1(x(B) ;; 0458 ("k" ?$,1(Z(B) ;; 043A ("k'" ?$,1(|(B) ;; 045c ("k," ?$,1)[(B) ;; 049B ("k-" ?$,1)_(B) ;; 049F ("k/" ?$,1)A(B) ;; 0481 ("k;" ?$,1*$(B) ;; 04C4 ("k^" ?$,1)/(B) ;; 046F ("k|" ?$,1)](B) ;; 049D ("k~" ?$,1)a(B) ;; 04A1 ("l" ?$,1([(B) ;; 043B ("l," ?$,1*&(B) ;; 04C6 ("l/" ?$,1(y(B) ;; 0459 ("m" ?$,1(\(B) ;; 043C ("m," ?$,1*.(B) ;; 04CE ("n" ?$,1(](B) ;; 043D ("n," ?$,1)c(B) ;; 04A3 ("n\\" ?$,1)e(B) ;; 04A5 ("n;" ?$,1*((B) ;; 04C8 ("n/" ?$,1(z(B) ;; 045a ("n|" ?$,1**(B) ;; 04CA ("o" ?$,1(^(B) ;; 043E ("o'" ?$,1)=(B) ;; 047D ("o-" ?$,1*I(B) ;; 04E9 ("o-\"" ?$,1*K(B) ;; 04EB ("o\"" ?$,1*G(B) ;; 04E7 ("o_" ?$,1)!(B) ;; 0461 ("ou" ?$,1)9(B) ;; 0479 ("o|" ?$,1);(B) ;; 047B ("o~" ?$,1)?(B) ;; 047F ("p" ?$,1(_(B) ;; 043F ("p," ?$,1)g(B) ;; 04A7 ("p^" ?$,1)1(B) ;; 0471 ("q" ?$,1(o(B) ;; 044F ("q/" ?$,1)'(B) ;; 0467 ("q\\" ?$,1))(B) ;; 0469 ("r" ?$,1(`(B) ;; 0440 ("r," ?$,1)O(B) ;; 048F ("s" ?$,1(a(B) ;; 0441 ("s," ?$,1)k(B) ;; 04AB ("s|\"" ?$,1*;(B) ;; 04DB ("s|" ?$,1*9(B) ;; 04D9 ("t" ?$,1(b(B) ;; 0442 ("t," ?$,1)m(B) ;; 04AD ("t/" ?$,1({(B) ;; 045b ("u" ?$,1(c(B) ;; 0443 ("u/" ?$,1)-(B) ;; 046D ("u;" ?$,1*S(B) ;; 04F3 ("u\"" ?$,1*Q(B) ;; 04F1 ("u^" ?$,1(~(B) ;; 045e ("u_" ?$,1)+(B) ;; 046B ("u-" ?$,1*O(B) ;; 04EF ("v" ?$,1(V(B) ;; 0436 ("v," ?$,1)W(B) ;; 0497 ("v\"" ?$,1*=(B) ;; 04DD ("v^" ?$,1*"(B) ;; 04C2 ("w" ?$,1(R(B) ;; 0432 ("x" ?$,1(l(B) ;; 044C SOFT SIGN ("x'" ?$,1(j(B) ;; 044A HARD SIGN ("x/" ?$,1)M(B) ;; 048D SEMISOFT SIGN ("y" ?$,1(k(B) ;; 044B ("y-" ?$,1)q(B) ;; 04B1 ("y\"" ?$,1*Y(B) ;; 04F9 ("y|" ?$,1)o(B) ;; 04AF ("z" ?$,1(W(B) ;; 0435 ("z," ?$,1)Y(B) ;; 0499 ("z\"" ?$,1*?(B) ;; 04DF ("z|" ?$,1*A(B) ;; 04E1 ("{" ?$,1(H(B) ;; 0428 ("{{" ?{) ;; { ("/{" ?{) ;; { ("}" ?$,1(I(B) ;; 0429 ("}}" ?}) ;; } ("/}" ?}) ;; } ("~" ?$,1(N(B) ;; 042E ("~~" ?~) ;; ~ tilda ("/\\" ?$,1)B(B) ;; 0482 CYRILLIC THOUSANDS SIGN ("/-" ?$,1)C(B) ;; 0483 $,1)C(B combining cyrillic titlo ("/~" ?$,1)D(B) ;; 0484 $,1)D(B combining cyrillic palatalization ("~\\" ?$,1)E(B) ;; 0485 $,1)E(B combining cyrillic dasia pneumata ("~/" ?$,1)F(B) ;; 0486 $,1)F(B combining cyrillic psili pneumata ("~|" ?$,1)G(B) ;; 0487 $,1)G(B combining cyrillic pokrytie ("/:" ?$,1)H(B) ;; 0488 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN ("/;" ?$,1)I(B) ;; 0489 COMBINING CYRILLIC MILLIONS SIGN ("/'" ?$,1%A(B) ;; 0301 combining acute accent (for main udarenie) ("/`" ?$,1%@(B) ;; 0300 combining greve accent (for sub udarenie) ) ;; Local Variables: ;; buffer-file-coding-system: iso-2022-7bit ;; End: ;;; slavonic.el ends here