Mercurial > emacs
annotate lisp/language/cyrillic.el @ 47640:d5e4a276998c
*** empty log message ***
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 27 Sep 2002 00:47:25 +0000 |
parents | 2ff3f5116672 |
children | e0786a68f34e |
rev | line source |
---|---|
38414
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37112
diff
changeset
|
1 ;;; cyrillic.el --- support for Cyrillic -*- coding: iso-2022-7bit; -*- |
17052 | 2 |
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. | |
18454
b44129078db3
Update copyright notice.
Richard M. Stallman <rms@gnu.org>
parents:
18308
diff
changeset
|
4 ;; Licensed to the Free Software Foundation. |
46500 | 5 ;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. |
17052 | 6 |
46500 | 7 ;; Author: Kenichi Handa <handa@etl.go.jp> |
8 ;; Keywords: multilingual, Cyrillic, i18n | |
17052 | 9 |
10 ;; This file is part of GNU Emacs. | |
11 | |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
13 ;; it under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
16 | |
17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
17071 | 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
25 ;; Boston, MA 02111-1307, USA. | |
17052 | 26 |
27 ;;; Commentary: | |
28 | |
46500 | 29 ;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ |
30 ;; are converted to Unicode internally. See | |
31 ;; <URL:http://www.ecma.ch/ecma1/STAND/ECMA-113.HTM>. For more info | |
32 ;; on Cyrillic charsets, see | |
33 ;; <URL:http://czyborra.com/charsets/cyrillic.html>. The KOI and | |
34 ;; Alternativnyj coding systems should live in code-pages.el, but | |
35 ;; they've always been preloaded and the coding system autoload | |
36 ;; mechanism didn't get accepted, so they have to stay here and | |
37 ;; duplicate code-pages stuff. | |
38 | |
39 ;; Note that 8859-5 maps directly onto the Unicode Cyrillic block, | |
40 ;; apart from codepoints 160 (NBSP, c.f. U+0400), 173 (soft hyphen, | |
41 ;; c.f. U+04OD) and 253 (section sign, c.f U+045D). The KOI-8 and | |
42 ;; Alternativnyj coding systems encode both 8859-5 and Unicode. | |
43 ;; ucs-tables.el provides unification for cyrillic-iso-8bit. | |
44 | |
45 ;; Customizing `utf-8-fragment-on-decoding' allows decoding characters | |
46 ;; from KOI and Alternativnyj into 8859-5 where that's possible. | |
47 ;; cyrillic-iso8859-5 characters take half as much space in the buffer | |
48 ;; as the mule-unicode-0100-24ff equivalents, though that's probably | |
49 ;; not normally a big deal. | |
17052 | 50 |
51 ;;; Code: | |
52 | |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
53 ;; Cyrillic (general) |
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
54 |
46500 | 55 ;; ISO-8859-5 stuff |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
56 |
17052 | 57 (make-coding-system |
18308 | 58 'cyrillic-iso-8bit 2 ?5 |
42152 | 59 "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)." |
20745 | 60 '(ascii cyrillic-iso8859-5 nil nil |
61 nil nil nil nil nil nil nil) | |
62 '((safe-charsets ascii cyrillic-iso8859-5) | |
63 (mime-charset . iso-8859-5))) | |
17052 | 64 |
18520
383d11185239
Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents:
18454
diff
changeset
|
65 (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit) |
18308 | 66 |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
67 (set-language-info-alist |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
68 "Cyrillic-ISO" '((charset cyrillic-iso8859-5) |
20745 | 69 (coding-system cyrillic-iso-8bit) |
70 (coding-priority cyrillic-iso-8bit) | |
46500 | 71 (input-method . "cyrillic-yawerty") ; fixme |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
72 (nonascii-translation . cyrillic-iso8859-5) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
73 (unibyte-display . cyrillic-iso-8bit) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
74 (features cyril-util) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
75 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") |
20745 | 76 (documentation . "Support for Cyrillic ISO-8859-5.")) |
77 '("Cyrillic")) | |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
78 |
46500 | 79 ;; KOI-8R stuff |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
80 |
46500 | 81 ;; The mule-unicode portion of this is from |
82 ;; http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT, | |
83 ;; which references RFC 1489. | |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
84 (defvar cyrillic-koi8-r-decode-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
85 [ |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
86 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
87 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
88 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
89 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
90 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
91 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
92 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
93 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
46500 | 94 ;; 8859-5 plus Unicode |
95 ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B | |
96 ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1s"(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,L (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B | |
97 ?$,2 p(B ?$,2 q(B ?$,2 r(B ?,Lq(B ?$,2 s(B ?$,2 t(B ?$,2 u(B ?$,2 v(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,2 |(B ?$,2 }(B ?$,2 ~(B | |
98 ?$,2 (B ?$,2! (B ?$,2!!(B ?,L!(B ?$,2!"(B ?$,2!#(B ?$,2!$(B ?$,2!%(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,2!+(B ?$,2!,(B ?,A)(B | |
99 ?,Ln(B ?,LP(B ?,LQ(B ?,Lf(B ?,LT(B ?,LU(B ?,Ld(B ?,LS(B ?,Le(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B | |
100 ?,L_(B ?,Lo(B ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,LV(B ?,LR(B ?,Ll(B ?,Lk(B ?,LW(B ?,Lh(B ?,Lm(B ?,Li(B ?,Lg(B ?,Lj(B | |
101 ?,LN(B ?,L0(B ?,L1(B ?,LF(B ?,L4(B ?,L5(B ?,LD(B ?,L3(B ?,LE(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B | |
102 ?,L?(B ?,LO(B ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,L6(B ?,L2(B ?,LL(B ?,LK(B ?,L7(B ?,LH(B ?,LM(B ?,LI(B ?,LG(B ?,LJ(B | |
103 ;; All Unicode: | |
104 ;; ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B | |
105 ;; ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1s"(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,A (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B | |
106 ;; ?$,2 p(B ?$,2 q(B ?$,2 r(B ?$,1(q(B ?$,2 s(B ?$,2 t(B ?$,2 u(B ?$,2 v(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,2 |(B ?$,2 }(B ?$,2 ~(B | |
107 ;; ?$,2 (B ?$,2! (B ?$,2!!(B ?$,1(!(B ?$,2!"(B ?$,2!#(B ?$,2!$(B ?$,2!%(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,2!+(B ?$,2!,(B ?,A)(B | |
108 ;; ?$,1(n(B ?$,1(P(B ?$,1(Q(B ?$,1(f(B ?$,1(T(B ?$,1(U(B ?$,1(d(B ?$,1(S(B ?$,1(e(B ?$,1(X(B ?$,1(Y(B ?$,1(Z(B ?$,1([(B ?$,1(\(B ?$,1(](B ?$,1(^(B | |
109 ;; ?$,1(_(B ?$,1(o(B ?$,1(`(B ?$,1(a(B ?$,1(b(B ?$,1(c(B ?$,1(V(B ?$,1(R(B ?$,1(l(B ?$,1(k(B ?$,1(W(B ?$,1(h(B ?$,1(m(B ?$,1(i(B ?$,1(g(B ?$,1(j(B | |
110 ;; ?$,1(N(B ?$,1(0(B ?$,1(1(B ?$,1(F(B ?$,1(4(B ?$,1(5(B ?$,1(D(B ?$,1(3(B ?$,1(E(B ?$,1(8(B ?$,1(9(B ?$,1(:(B ?$,1(;(B ?$,1(<(B ?$,1(=(B ?$,1(>(B | |
111 ;; ?$,1(?(B ?$,1(O(B ?$,1(@(B ?$,1(A(B ?$,1(B(B ?$,1(C(B ?$,1(6(B ?$,1(2(B ?$,1(L(B ?$,1(K(B ?$,1(7(B ?$,1(H(B ?$,1(M(B ?$,1(I(B ?$,1(G(B ?$,1(J(B | |
112 ] | |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
113 "Cyrillic KOI8-R decoding table.") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
114 |
29453 | 115 (let ((table (make-translation-table-from-vector |
116 cyrillic-koi8-r-decode-table))) | |
117 (define-translation-table 'cyrillic-koi8-r-nonascii-translation-table table) | |
118 (define-translation-table 'cyrillic-koi8-r-encode-table | |
119 (char-table-extra-slot table 0))) | |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
120 |
46500 | 121 ;; No point in keeping it around. (It can't be let-bound, since it's |
122 ;; needed for macro expansion.) | |
123 (makunbound 'cyrillic-koi8-r-decode-table) | |
124 | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
125 (define-ccl-program ccl-decode-koi8 |
46500 | 126 `(4 |
29453 | 127 ((loop |
128 (r0 = 0) | |
129 (read r1) | |
130 (if (r1 < 128) | |
131 (write-repeat r1) | |
132 ((translate-character cyrillic-koi8-r-nonascii-translation-table r0 r1) | |
46500 | 133 (translate-character utf-8-translation-table-for-decode r0 r1) |
29453 | 134 (write-multibyte-character r0 r1) |
135 (repeat)))))) | |
46500 | 136 "CCL program to decode KOI8-R.") |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
137 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
138 (define-ccl-program ccl-encode-koi8 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
139 `(1 |
29453 | 140 ((loop |
141 (read-multibyte-character r0 r1) | |
46500 | 142 (translate-character cyrillic-koi8-r-encode-table r0 r1) |
29453 | 143 (write-repeat r1)))) |
46500 | 144 "CCL program to encode KOI8-R.") |
145 | |
146 (defun cyrillic-unify-encoding (table) | |
147 "Set up equivalent characters in the encoding TABLE. | |
148 This works wheher or not the table is is Unicode-based or | |
149 8859-5-based. (Only appropriate for Cyrillic.)" | |
150 (let ((table (get table 'translation-table))) | |
151 (dotimes (i 96) | |
152 (let* ((c (make-char 'cyrillic-iso8859-5 (+ i 32))) | |
153 (u ; equivalent Unicode char | |
154 (cond ((eq c ?,L (B) ?,A (B) | |
155 ((eq c ?,L-(B) ?,A-(B) | |
156 ((eq c ?,L}(B) ?,A'(B) | |
157 (t (decode-char 'ucs (+ #x400 i))))) | |
158 (ec (aref table c)) ; encoding of 8859-5 | |
159 (uc (aref table u))) ; encoding of Unicode | |
160 (unless (memq c '(?,L (B ?,L-(B ?,L}(B)) ; 8859-5 exceptions | |
161 (unless uc | |
162 (aset table u ec)) | |
163 (unless ec | |
164 (aset table c uc))))))) | |
165 | |
166 (cyrillic-unify-encoding 'cyrillic-koi8-r-encode-table) | |
167 | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
168 (make-coding-system |
18203
0745f30aec66
Adjusted for coding system name change.
Kenichi Handa <handa@m17n.org>
parents:
18155
diff
changeset
|
169 'cyrillic-koi8 4 |
18116
7839aa2f6765
(koi8-r): Use R for mode line.
Richard M. Stallman <rms@gnu.org>
parents:
17993
diff
changeset
|
170 ;; We used to use ?K. It is true that ?K is more strictly correct, |
7839aa2f6765
(koi8-r): Use R for mode line.
Richard M. Stallman <rms@gnu.org>
parents:
17993
diff
changeset
|
171 ;; but it is also used for Korean. |
7839aa2f6765
(koi8-r): Use R for mode line.
Richard M. Stallman <rms@gnu.org>
parents:
17993
diff
changeset
|
172 ;; So people who use koi8 for languages other than Russian |
7839aa2f6765
(koi8-r): Use R for mode line.
Richard M. Stallman <rms@gnu.org>
parents:
17993
diff
changeset
|
173 ;; will have to forgive us. |
46500 | 174 ?R "KOI8-R 8-bit encoding for Cyrillic (MIME: KOI8-R)." |
21663
a03ddc4a728b
FLAGS arguments for make-coding-system changed.
Kenichi Handa <handa@m17n.org>
parents:
20745
diff
changeset
|
175 '(ccl-decode-koi8 . ccl-encode-koi8) |
46500 | 176 `((safe-chars . cyrillic-koi8-r-encode-table) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
177 (mime-charset . koi8-r) |
46500 | 178 (valid-codes (0 . 255)))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
179 |
18520
383d11185239
Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents:
18454
diff
changeset
|
180 (define-coding-system-alias 'koi8-r 'cyrillic-koi8) |
383d11185239
Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents:
18454
diff
changeset
|
181 (define-coding-system-alias 'koi8 'cyrillic-koi8) |
46500 | 182 (define-coding-system-alias 'cp878 'cyrillic-koi8) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
183 |
46500 | 184 ;; Allow displaying some of KOI & al with an 8859-5-encoded font. We |
185 ;; won't bother about the exceptions when encoding the font, since | |
186 ;; NBSP will fall through below and work anyhow, and we'll have | |
187 ;; avoided setting the fontset for the other two to 8859-5 -- they're | |
188 ;; not in KOI and Alternativnyj anyhow. | |
189 (define-ccl-program ccl-encode-8859-5-font | |
190 `(0 | |
191 ((if (r0 == ,(charset-id 'cyrillic-iso8859-5)) | |
192 (r1 += 128) | |
193 (if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) | |
194 (r1 = (r2 + 128)))))) | |
195 "Encode ISO 8859-5 and Cyrillic Unicode chars to 8859-5 font.") | |
196 | |
197 (add-to-list 'font-ccl-encoder-alist '("iso8859-5" . ccl-encode-8859-5-font)) | |
198 | |
199 ;; The table is set up later to encode both Unicode and 8859-5. | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
200 (define-ccl-program ccl-encode-koi8-font |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
201 `(0 |
46500 | 202 (translate-character cyrillic-koi8-r-encode-table r0 r1)) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
203 "CCL program to encode Cyrillic chars to KOI font.") |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
204 |
46500 | 205 (add-to-list 'font-ccl-encoder-alist '("koi8" . ccl-encode-koi8-font)) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
206 |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
207 (set-language-info-alist |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
208 "Cyrillic-KOI8" `((charset cyrillic-iso8859-5) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
209 (nonascii-translation |
29453 | 210 . ,(get 'cyrillic-koi8-r-nonascii-translation-table |
211 'translation-table)) | |
20745 | 212 (coding-system cyrillic-koi8) |
46500 | 213 (coding-priority cyrillic-koi8 cyrillic-iso-8bit) |
24946
0856eb4dd6ec
("Cyrillic-KOI8", "Cyrillic-ALT"): Use cyrillic-jcuken as default input method.
Richard M. Stallman <rms@gnu.org>
parents:
24297
diff
changeset
|
214 (input-method . "cyrillic-jcuken") |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
215 (features cyril-util) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
216 (unibyte-display . cyrillic-koi8) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
217 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
218 (documentation . "Support for Cyrillic KOI8-R.")) |
20745 | 219 '("Cyrillic")) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
220 |
46500 | 221 |
222 (defvar cyrillic-koi8-u-decode-table | |
223 [ | |
224 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
225 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
226 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
227 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | |
228 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | |
229 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | |
230 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |
231 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |
232 ;; All Unicode: | |
233 ;; ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B | |
234 ;; ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1x9(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,L (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B | |
235 ;; ?$,2 p(B ?$,2 q(B ?$,2 r(B ?$,1(q(B ?$,1(t(B ?$,2 t(B ?$,1(v(B ?$,1(w(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,1)Q(B ?$,2 }(B ?$,2 ~(B | |
236 ;; ?$,2 (B ?$,2! (B ?$,2!!(B ?$,1(!(B ?$,1($(B ?$,2!#(B ?$,1(&(B ?$,1('(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,1)P(B ?$,2!,(B ?,A)(B | |
237 ;; ?$,1(n(B ?$,1(P(B ?$,1(Q(B ?$,1(f(B ?$,1(T(B ?$,1(U(B ?$,1(d(B ?$,1(S(B ?$,1(e(B ?$,1(X(B ?$,1(Y(B ?$,1(Z(B ?$,1([(B ?$,1(\(B ?$,1(](B ?$,1(^(B | |
238 ;; ?$,1(_(B ?$,1(o(B ?$,1(`(B ?$,1(a(B ?$,1(b(B ?$,1(c(B ?$,1(V(B ?$,1(R(B ?$,1(l(B ?$,1(k(B ?$,1(W(B ?$,1(h(B ?$,1(m(B ?$,1(i(B ?$,1(g(B ?$,1(j(B | |
239 ;; ?$,1(N(B ?$,1(0(B ?$,1(1(B ?$,1(F(B ?$,1(4(B ?$,1(5(B ?$,1(D(B ?$,1(3(B ?$,1(E(B ?$,1(8(B ?$,1(9(B ?$,1(:(B ?$,1(;(B ?$,1(<(B ?$,1(=(B ?$,1(>(B | |
240 ;; ?$,1(?(B ?$,1(O(B ?$,1(@(B ?$,1(A(B ?$,1(B(B ?$,1(C(B ?$,1(6(B ?$,1(2(B ?$,1(L(B ?$,1(K(B ?$,1(7(B ?$,1(H(B ?$,1(M(B ?$,1(I(B ?$,1(G(B ?$,1(J(B | |
241 ;; 8859-5 plus Unicode: | |
242 ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B | |
243 ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1x9(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,L (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B | |
244 ?$,2 p(B ?$,2 q(B ?$,2 r(B ?,Lq(B ?,Lt(B ?$,2 t(B ?,Lv(B ?,Lw(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,1)Q(B ?$,2 }(B ?$,2 ~(B | |
245 ?$,2 (B ?$,2! (B ?$,2!!(B ?,L!(B ?,L$(B ?$,2!#(B ?,L&(B ?,L'(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,1)P(B ?$,2!,(B ?,A)(B | |
246 ?,Ln(B ?,LP(B ?,LQ(B ?,Lf(B ?,LT(B ?,LU(B ?,Ld(B ?,LS(B ?,Le(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B | |
247 ?,L_(B ?,Lo(B ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,LV(B ?,LR(B ?,Ll(B ?,Lk(B ?,LW(B ?,Lh(B ?,Lm(B ?,Li(B ?,Lg(B ?,Lj(B | |
248 ?,LN(B ?,L0(B ?,L1(B ?,LF(B ?,L4(B ?,L5(B ?,LD(B ?,L3(B ?,LE(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B | |
249 ?,L?(B ?,LO(B ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,L6(B ?,L2(B ?,LL(B ?,LK(B ?,L7(B ?,LH(B ?,LM(B ?,LI(B ?,LG(B ?,LJ(B | |
250 ] | |
251 "Cyrillic KOI8-U decoding table.") | |
252 | |
253 (let ((table (make-translation-table-from-vector | |
254 cyrillic-koi8-u-decode-table))) | |
255 (define-translation-table 'cyrillic-koi8-u-nonascii-translation-table table) | |
256 (define-translation-table 'cyrillic-koi8-u-encode-table | |
257 (char-table-extra-slot table 0))) | |
258 | |
259 (makunbound 'cyrillic-koi8-u-decode-table) | |
260 | |
261 (define-ccl-program ccl-decode-koi8-u | |
262 `(4 | |
263 ((loop | |
264 (r0 = 0) | |
265 (read r1) | |
266 (if (r1 < 128) | |
267 (write-repeat r1) | |
268 ((translate-character cyrillic-koi8-u-nonascii-translation-table r0 r1) | |
269 (translate-character utf-8-translation-table-for-decode r0 r1) | |
270 (write-multibyte-character r0 r1) | |
271 (repeat)))))) | |
272 "CCL program to decode KOI8-U.") | |
273 | |
274 (define-ccl-program ccl-encode-koi8-u | |
275 `(1 | |
276 ((loop | |
277 (read-multibyte-character r0 r1) | |
278 (translate-character cyrillic-koi8-u-encode-table r0 r1) | |
279 (write-repeat r1)))) | |
280 "CCL program to encode KOI8-U.") | |
281 | |
282 (cyrillic-unify-encoding 'cyrillic-koi8-u-encode-table) | |
283 | |
284 (make-coding-system | |
285 'koi8-u 4 | |
286 ?U "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)" | |
287 '(ccl-decode-koi8-u . ccl-encode-koi8-u) | |
288 `((safe-chars . cyrillic-koi8-u-encode-table) | |
289 (mime-charset . koi8-u) | |
290 (valid-codes (0 . 255)))) | |
291 | |
292 (define-ccl-program ccl-encode-koi8-u-font | |
293 `(0 | |
294 (translate-character cyrillic-koi8-u-encode-table r0 r1)) | |
295 "CCL program to encode Cyrillic chars to KOI-U font.") | |
296 | |
297 (add-to-list 'font-ccl-encoder-alist '("koi8-u" . ccl-encode-koi8-u-font)) | |
298 | |
299 (set-language-info-alist | |
300 "Ukrainian" `((coding-system koi8-u) | |
301 (coding-priority koi8-u) | |
302 (nonascii-translation | |
47416
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
303 . ,(get 'cyrillic-koi8-u-nonascii-translation-table |
46500 | 304 'translation-table)) |
305 (input-method . "ukrainian-computer") | |
306 (features code-pages) | |
307 (documentation | |
47416
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
308 . "Support for Ukrainian with KOI8-U character set.")) |
46500 | 309 '("Cyrillic")) |
310 | |
311 ;;; ALTERNATIVNYJ stuff | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
312 |
47416
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
313 ;; Fixme: It's unclear what's the correct table. I've found |
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
314 ;; statements both that it's the same as cp866 and somewhat different, |
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
315 ;; but nothing that looks definitive. |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
316 (defvar cyrillic-alternativnyj-decode-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
317 [ |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
318 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
319 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
320 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
321 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
322 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
323 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
324 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
325 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
46500 | 326 ;; ?$,1(0(B ?$,1(1(B ?$,1(2(B ?$,1(3(B ?$,1(4(B ?$,1(5(B ?$,1(6(B ?$,1(7(B ?$,1(8(B ?$,1(9(B ?$,1(:(B ?$,1(;(B ?$,1(<(B ?$,1(=(B ?$,1(>(B ?$,1(?(B |
327 ;; ?$,1(@(B ?$,1(A(B ?$,1(B(B ?$,1(C(B ?$,1(D(B ?$,1(E(B ?$,1(F(B ?$,1(G(B ?$,1(H(B ?$,1(I(B ?$,1(J(B ?$,1(K(B ?$,1(L(B ?$,1(M(B ?$,1(N(B ?$,1(O(B | |
328 ;; ?$,1(P(B ?$,1(Q(B ?$,1(R(B ?$,1(S(B ?$,1(T(B ?$,1(U(B ?$,1(V(B ?$,1(W(B ?$,1(X(B ?$,1(Y(B ?$,1(Z(B ?$,1([(B ?$,1(\(B ?$,1(](B ?$,1(^(B ?$,1(_(B | |
329 ;; ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,2 "(B ?$,2 D(B ?$,2!!(B ?$,2!"(B ?$,2 v(B ?$,2 u(B ?$,2!#(B ?$,2 q(B ?$,2 w(B ?$,2 }(B ?$,2 |(B ?$,2 {(B ?$,2 0(B | |
330 ;; ?$,2 4(B ?$,2 T(B ?$,2 L(B ?$,2 <(B ?$,2 (B ?$,2 \(B ?$,2 ~(B ?$,2 (B ?$,2 z(B ?$,2 t(B ?$,2!)(B ?$,2!&(B ?$,2! (B ?$,2 p(B ?$,2!,(B ?$,2!'(B | |
331 ;; ?$,2!((B ?$,2!$(B ?$,2!%(B ?$,2 y(B ?$,2 x(B ?$,2 r(B ?$,2 s(B ?$,2!+(B ?$,2!*(B ?$,2 8(B ?$,2 ,(B ?$,2!H(B ?$,2!D(B ?$,2!L(B ?$,2!P(B ?$,2!@(B | |
332 ;; ?$,1(`(B ?$,1(a(B ?$,1(b(B ?$,1(c(B ?$,1(d(B ?$,1(e(B ?$,1(f(B ?$,1(g(B ?$,1(h(B ?$,1(i(B ?$,1(j(B ?$,1(k(B ?$,1(l(B ?$,1(m(B ?$,1(n(B ?$,1(o(B | |
333 ;; ?$,1(!(B ?$,1(q(B ?$,1($(B ?$,1(t(B ?$,1('(B ?$,1(w(B ?$,1(.(B ?$,1(~(B ?,A0(B ?$,1s"(B ?,A7(B ?$,1x:(B ?$,1uV(B ?,A$(B ?$,2!`(B ?,A (B ; | |
334 ;; 8859+Unicode | |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
335 ?,L0(B ?,L1(B ?,L2(B ?,L3(B ?,L4(B ?,L5(B ?,L6(B ?,L7(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B ?,L?(B |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
336 ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,LD(B ?,LE(B ?,LF(B ?,LG(B ?,LH(B ?,LI(B ?,LJ(B ?,LK(B ?,LL(B ?,LM(B ?,LN(B ?,LO(B |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
337 ?,LP(B ?,LQ(B ?,LR(B ?,LS(B ?,LT(B ?,LU(B ?,LV(B ?,LW(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B ?,L_(B |
46500 | 338 ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,2 "(B ?$,2 D(B ?$,2!!(B ?$,2!"(B ?$,2 v(B ?$,2 u(B ?$,2!#(B ?$,2 q(B ?$,2 w(B ?$,2 }(B ?$,2 |(B ?$,2 {(B ?$,2 0(B |
339 ?$,2 4(B ?$,2 T(B ?$,2 L(B ?$,2 <(B ?$,2 (B ?$,2 \(B ?$,2 ~(B ?$,2 (B ?$,2 z(B ?$,2 t(B ?$,2!)(B ?$,2!&(B ?$,2! (B ?$,2 p(B ?$,2!,(B ?$,2!'(B | |
340 ?$,2!((B ?$,2!$(B ?$,2!%(B ?$,2 y(B ?$,2 x(B ?$,2 r(B ?$,2 s(B ?$,2!+(B ?$,2!*(B ?$,2 8(B ?$,2 ,(B ?$,2!H(B ?$,2!D(B ?$,2!L(B ?$,2!P(B ?$,2!@(B | |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
341 ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,Ld(B ?,Le(B ?,Lf(B ?,Lg(B ?,Lh(B ?,Li(B ?,Lj(B ?,Lk(B ?,Ll(B ?,Lm(B ?,Ln(B ?,Lo(B |
47416
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
342 ?,L!(B ?,Lq(B ?,L$(B ?,Lt(B ?,L'(B ?,Lw(B ?,L.(B ?,L~(B ?,A0(B ?$,1s"(B ?,A7(B ?$,1x:(B ?,Lp(B ?,A$(B ?$,2!`(B ?,L (B] |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
343 "Cyrillic ALTERNATIVNYJ decoding table.") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
344 |
29453 | 345 (let ((table (make-translation-table-from-vector |
346 cyrillic-alternativnyj-decode-table))) | |
347 (define-translation-table 'cyrillic-alternativnyj-nonascii-translation-table | |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
348 table) |
29453 | 349 (define-translation-table 'cyrillic-alternativnyj-encode-table |
350 (char-table-extra-slot table 0))) | |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
351 |
46500 | 352 (makunbound 'cyrillic-alternativnyj-decode-table) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
353 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
354 (define-ccl-program ccl-decode-alternativnyj |
46500 | 355 `(4 |
29453 | 356 ((loop |
357 (r0 = 0) | |
358 (read r1) | |
359 (if (r1 < 128) | |
360 (write-repeat r1) | |
361 ((translate-character cyrillic-alternativnyj-nonascii-translation-table | |
362 r0 r1) | |
46500 | 363 (translate-character utf-8-translation-table-for-decode r0 r1) |
29453 | 364 (write-multibyte-character r0 r1) |
365 (repeat)))))) | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
366 "CCL program to decode Alternativnyj.") |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
367 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
368 (define-ccl-program ccl-encode-alternativnyj |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
369 `(1 |
29453 | 370 ((loop |
371 (read-multibyte-character r0 r1) | |
30495
491e0864dd18
(cyrillic-koi8): Use `safe-chars' property instead of `safe-charsets'.
Kenichi Handa <handa@m17n.org>
parents:
29453
diff
changeset
|
372 (translate-character cyrillic-alternativnyj-encode-table r0 r1) |
29453 | 373 (write-repeat r1)))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
374 "CCL program to encode Alternativnyj.") |
46500 | 375 |
376 (cyrillic-unify-encoding 'cyrillic-alternativnyj-encode-table) | |
377 | |
47416
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
378 ;; Fixme: Check the cp866 here and in alias below. See comment on the |
2ff3f5116672
("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents:
46500
diff
changeset
|
379 ;; decode table above. |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
380 (make-coding-system |
18308 | 381 'cyrillic-alternativnyj 4 ?A |
46500 | 382 "ALTERNATIVNYJ (CP866) 8-bit encoding for Cyrillic." |
21663
a03ddc4a728b
FLAGS arguments for make-coding-system changed.
Kenichi Handa <handa@m17n.org>
parents:
20745
diff
changeset
|
383 '(ccl-decode-alternativnyj . ccl-encode-alternativnyj) |
46500 | 384 `((safe-chars . cyrillic-alternativnyj-encode-table) |
385 (valid-codes (0 . 255)) | |
386 (mime-charset . cp866))) | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
387 |
18520
383d11185239
Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents:
18454
diff
changeset
|
388 (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj) |
46500 | 389 (define-coding-system-alias 'cp866 'cyrillic-alternativnyj) |
18308 | 390 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
391 (define-ccl-program ccl-encode-alternativnyj-font |
46500 | 392 `(0 |
393 (translate-character cyrillic-alternativnyj-encode-table r0 r1)) | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
394 "CCL program to encode Cyrillic chars to Alternativnyj font.") |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
395 |
46500 | 396 (add-to-list 'font-ccl-encoder-alist |
397 '("alternativnyj" . ccl-encode-alternativnyj-font)) | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
398 |
17993
73869115ae0a
Most of setup-LANGUAGE-environment functions are
Kenichi Handa <handa@m17n.org>
parents:
17841
diff
changeset
|
399 (set-language-info-alist |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
400 "Cyrillic-ALT" `((charset cyrillic-iso8859-5) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
401 (nonascii-translation |
29453 | 402 . ,(get 'cyrillic-alternativnyj-nonascii-translation-table |
403 'translation-table)) | |
20745 | 404 (coding-system cyrillic-alternativnyj) |
405 (coding-priority cyrillic-alternativnyj) | |
46500 | 406 (input-method . "russian-typewriter") |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
407 (features cyril-util) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
408 (unibyte-display . cyrillic-alternativnyj) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
409 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") |
20745 | 410 (documentation . "Support for Cyrillic ALTERNATIVNYJ.")) |
411 '("Cyrillic")) | |
17052 | 412 |
46500 | 413 (set-language-info-alist |
414 "Windows-1251" `((coding-system windows-1251) | |
415 (coding-priority windows-1251) | |
416 (nonascii-translation | |
417 . ,(get 'decode-windows-1252 'translation-table)) | |
418 (input-method . "russian-typewriter") ; fixme? | |
419 (features code-pages) | |
420 (documentation . "Support for windows-1251 character set.")) | |
421 '("Cyrillic")) | |
422 | |
423 (set-language-info-alist | |
424 "Tajik" `((coding-system cyrillic-koi8-t) | |
425 (coding-priority cyrillic-koi8-t) | |
426 (nonascii-translation | |
427 . ,(get 'decode-koi8-t 'translation-table)) | |
428 (input-method . "russian-typewriter") ; fixme? | |
429 (features code-pages) | |
430 (documentation . "Support for Tajik using KOI8-T.")) | |
431 '("Cyrillic")) | |
432 | |
433 (set-language-info-alist | |
434 "Bulgarian" `((coding-system windows-1251) | |
435 (coding-priority windows-1251) | |
436 (nonascii-translation | |
437 . ,(get 'decode-windows-1251 'translation-table)) | |
438 (input-method . "bulgarian-standard") | |
439 (features code-pages) | |
440 (documentation | |
441 . "Support for Bulgrian with windows-1251 character set.")) | |
442 '("Cyrillic")) | |
443 | |
444 (set-language-info-alist | |
445 "Belarusian" `((coding-system windows-1251) | |
446 (coding-priority windows-1251) | |
447 (nonascii-translation | |
448 . ,(get 'decode-windows-1251 'translation-table)) | |
449 (input-method . "belarusian") | |
450 (features code-pages) | |
451 (documentation | |
452 . "Support for Belarusian with windows-1251 character set. | |
453 \(The name Belarusian replaced Byelorussian in the early 1990s.)")) | |
454 '("Cyrillic")) | |
455 | |
33778 | 456 (provide 'cyrillic) |
457 | |
17052 | 458 ;;; cyrillic.el ends here |