Mercurial > emacs
annotate lisp/language/cyrillic.el @ 26425:08c26156186a
(term_init): If "op" isn't available, don't support color
because we can't switch back to the default foreground and
background.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Fri, 12 Nov 1999 14:34:52 +0000 |
parents | 570e07739ea2 |
children | 22f8105a7dc7 |
rev | line source |
---|---|
23158
5c0a4ed13900
Add coding: local variable, to avoid bootstrapping problem
Paul Eggert <eggert@twinsun.com>
parents:
23070
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. |
17052 | 5 |
6 ;; Keywords: multilingual, Cyrillic | |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
17071 | 21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
17052 | 24 |
25 ;;; Commentary: | |
26 | |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
27 ;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
28 ;; are converted to ISO8859-5 internally. |
17052 | 29 |
30 ;;; Code: | |
31 | |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
32 ;; Cyrillic (general) |
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
33 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
34 ;; ISO-8859-5 staff |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
35 |
17052 | 36 (make-coding-system |
18308 | 37 'cyrillic-iso-8bit 2 ?5 |
38 "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)" | |
20745 | 39 '(ascii cyrillic-iso8859-5 nil nil |
40 nil nil nil nil nil nil nil) | |
41 '((safe-charsets ascii cyrillic-iso8859-5) | |
42 (mime-charset . iso-8859-5))) | |
17052 | 43 |
18520
383d11185239
Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents:
18454
diff
changeset
|
44 (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit) |
18308 | 45 |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
46 (set-language-info-alist |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
47 "Cyrillic-ISO" '((charset cyrillic-iso8859-5) |
20745 | 48 (coding-system cyrillic-iso-8bit) |
49 (coding-priority cyrillic-iso-8bit) | |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
50 (input-method . "cyrillic-yawerty") |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
51 (nonascii-translation . cyrillic-iso8859-5) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
52 (unibyte-display . cyrillic-iso-8bit) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
53 (features cyril-util) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
54 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") |
20745 | 55 (documentation . "Support for Cyrillic ISO-8859-5.")) |
56 '("Cyrillic")) | |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
57 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
58 ;; KOI-8 staff |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
59 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
60 (eval-and-compile |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
61 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
62 (defvar cyrillic-koi8-r-decode-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
63 [ |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
64 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
|
65 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
|
66 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
|
67 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
|
68 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
|
69 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
|
70 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
|
71 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
72 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
73 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
25827
570e07739ea2
(cyrillic-koi8-r-decode-table): Map 8-bit
Kenichi Handa <handa@m17n.org>
parents:
24946
diff
changeset
|
74 160 161 162 ?,Lq(B 164 165 166 167 168 169 170 171 172 173 174 175 |
570e07739ea2
(cyrillic-koi8-r-decode-table): Map 8-bit
Kenichi Handa <handa@m17n.org>
parents:
24946
diff
changeset
|
75 176 177 178 ?,L!(B 180 181 182 183 184 185 186 187 188 189 190 191 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
76 ?,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 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
77 ?,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 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
78 ?,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 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
79 ?,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 ] |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
80 "Cyrillic KOI8-R decoding table.") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
81 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
82 (defvar cyrillic-koi8-r-encode-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
83 (let ((table (make-vector 256 32)) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
84 (i 0)) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
85 (while (< i 256) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
86 (let* ((ch (aref cyrillic-koi8-r-decode-table i)) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
87 (split (split-char ch))) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
88 (if (eq (car split) 'cyrillic-iso8859-5) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
89 (aset table (logior (nth 1 split) 128) i) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
90 (if (/= ch 32) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
91 (aset table ch i)))) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
92 (setq i (1+ i))) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
93 table) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
94 "Cyrillic KOI8-R encoding table.") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
95 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
96 ) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
97 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
98 (define-ccl-program ccl-decode-koi8 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
99 `(3 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
100 ((read r0) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
101 (loop |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
102 (write-read-repeat r0 ,cyrillic-koi8-r-decode-table)))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
103 "CCL program to decode KOI8.") |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
104 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
105 (define-ccl-program ccl-encode-koi8 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
106 `(1 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
107 ((read r0) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
108 (loop |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
109 (if (r0 != ,(charset-id 'cyrillic-iso8859-5)) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
110 (write-read-repeat r0) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
111 ((read r0) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
112 (write-read-repeat r0 , cyrillic-koi8-r-encode-table)))))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
113 "CCL program to encode KOI8.") |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
114 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
115 (make-coding-system |
18203
0745f30aec66
Adjusted for coding system name change.
Kenichi Handa <handa@m17n.org>
parents:
18155
diff
changeset
|
116 'cyrillic-koi8 4 |
18116
7839aa2f6765
(koi8-r): Use R for mode line.
Richard M. Stallman <rms@gnu.org>
parents:
17993
diff
changeset
|
117 ;; 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
|
118 ;; 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
|
119 ;; 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
|
120 ;; will have to forgive us. |
18308 | 121 ?R "KOI8 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
|
122 '(ccl-decode-koi8 . ccl-encode-koi8) |
20745 | 123 '((safe-charsets ascii cyrillic-iso8859-5) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
124 (mime-charset . koi8-r) |
24297
a5b2e26efe7c
(cyrillic-koi8): Add charset-origin-alist property.
Kenichi Handa <handa@m17n.org>
parents:
23158
diff
changeset
|
125 (valid-codes (0 . 127) 163 179 (192 . 255)) |
a5b2e26efe7c
(cyrillic-koi8): Add charset-origin-alist property.
Kenichi Handa <handa@m17n.org>
parents:
23158
diff
changeset
|
126 (charset-origin-alist (cyrillic-iso8859-5 "KOI8-R" |
a5b2e26efe7c
(cyrillic-koi8): Add charset-origin-alist property.
Kenichi Handa <handa@m17n.org>
parents:
23158
diff
changeset
|
127 cyrillic-encode-koi8-r-char)))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
128 |
18520
383d11185239
Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents:
18454
diff
changeset
|
129 (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
|
130 (define-coding-system-alias 'koi8 'cyrillic-koi8) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
131 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
132 (define-ccl-program ccl-encode-koi8-font |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
133 `(0 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
134 ((r1 |= 128) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
135 (r1 = r1 ,cyrillic-koi8-r-encode-table))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
136 "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
|
137 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
138 (setq font-ccl-encoder-alist |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
139 (cons (cons "koi8" ccl-encode-koi8-font) font-ccl-encoder-alist)) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
140 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
141 (defvar cyrillic-koi8-r-nonascii-translation-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
142 (make-translation-table-from-vector cyrillic-koi8-r-decode-table) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
143 "Value of `nonascii-translation-table' in Cyrillic-KOI8 language environment..") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
144 |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
145 (set-language-info-alist |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
146 "Cyrillic-KOI8" `((charset cyrillic-iso8859-5) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
147 (nonascii-translation |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
148 . ,cyrillic-koi8-r-nonascii-translation-table) |
20745 | 149 (coding-system cyrillic-koi8) |
150 (coding-priority cyrillic-koi8) | |
24946
0856eb4dd6ec
("Cyrillic-KOI8", "Cyrillic-ALT"): Use cyrillic-jcuken as default input method.
Richard M. Stallman <rms@gnu.org>
parents:
24297
diff
changeset
|
151 (input-method . "cyrillic-jcuken") |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
152 (features cyril-util) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
153 (unibyte-display . cyrillic-koi8) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
154 (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
|
155 (documentation . "Support for Cyrillic KOI8-R.")) |
20745 | 156 '("Cyrillic")) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
157 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
158 ;;; ALTERNATIVNYJ staff |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
159 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
160 (eval-and-compile |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
161 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
162 (defvar cyrillic-alternativnyj-decode-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
163 [ |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
164 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
|
165 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
|
166 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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
172 ?,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
|
173 ?,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
|
174 ?,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 |
25827
570e07739ea2
(cyrillic-koi8-r-decode-table): Map 8-bit
Kenichi Handa <handa@m17n.org>
parents:
24946
diff
changeset
|
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
570e07739ea2
(cyrillic-koi8-r-decode-table): Map 8-bit
Kenichi Handa <handa@m17n.org>
parents:
24946
diff
changeset
|
176 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
570e07739ea2
(cyrillic-koi8-r-decode-table): Map 8-bit
Kenichi Handa <handa@m17n.org>
parents:
24946
diff
changeset
|
177 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
178 ?,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 |
25827
570e07739ea2
(cyrillic-koi8-r-decode-table): Map 8-bit
Kenichi Handa <handa@m17n.org>
parents:
24946
diff
changeset
|
179 ?,L!(B ?,Lq(B 242 243 244 245 246 247 248 249 250 251 252 253 254 ?,Lp(B] |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
180 "Cyrillic ALTERNATIVNYJ decoding table.") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
181 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
182 (defvar cyrillic-alternativnyj-encode-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
183 (let ((table (make-vector 256 32)) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
184 (i 0)) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
185 (while (< i 256) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
186 (let* ((ch (aref cyrillic-alternativnyj-decode-table i)) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
187 (split (split-char ch))) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
188 (if (eq (car split) 'cyrillic-iso8859-5) |
23070
7a5031625079
(cyrillic-koi8): Fix the value of
Kenichi Handa <handa@m17n.org>
parents:
22983
diff
changeset
|
189 (aset table (logior (nth 1 split) 128) i) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
190 (if (/= ch 32) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
191 (aset table ch i)))) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
192 (setq i (1+ i))) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
193 table) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
194 "Cyrillic ALTERNATIVNYJ encoding table.") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
195 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
196 ) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
197 |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
198 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
199 (define-ccl-program ccl-decode-alternativnyj |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
200 `(3 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
201 ((read r0) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
202 (loop |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
203 (write-read-repeat r0 ,cyrillic-alternativnyj-decode-table)))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
204 "CCL program to decode Alternativnyj.") |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
205 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
206 (define-ccl-program ccl-encode-alternativnyj |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
207 `(1 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
208 ((read r0) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
209 (loop |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
210 (if (r0 != ,(charset-id 'cyrillic-iso8859-5)) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
211 (write-read-repeat r0) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
212 ((read r0) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
213 (write-read-repeat r0 ,cyrillic-alternativnyj-encode-table)))))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
214 "CCL program to encode Alternativnyj.") |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
215 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
216 (make-coding-system |
18308 | 217 'cyrillic-alternativnyj 4 ?A |
218 "ALTERNATIVNYJ 8-bit encoding for Cyrillic" | |
21663
a03ddc4a728b
FLAGS arguments for make-coding-system changed.
Kenichi Handa <handa@m17n.org>
parents:
20745
diff
changeset
|
219 '(ccl-decode-alternativnyj . ccl-encode-alternativnyj) |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
220 '((safe-charsets ascii cyrillic-iso8859-5) |
24297
a5b2e26efe7c
(cyrillic-koi8): Add charset-origin-alist property.
Kenichi Handa <handa@m17n.org>
parents:
23158
diff
changeset
|
221 (valid-codes (0 . 175) (224 . 241) 255) |
a5b2e26efe7c
(cyrillic-koi8): Add charset-origin-alist property.
Kenichi Handa <handa@m17n.org>
parents:
23158
diff
changeset
|
222 (charset-origin-alist (cyrillic-iso8859-5 "ALTERNATIVNYJ" |
a5b2e26efe7c
(cyrillic-koi8): Add charset-origin-alist property.
Kenichi Handa <handa@m17n.org>
parents:
23158
diff
changeset
|
223 cyrillic-encode-koi8-r-char)))) |
a5b2e26efe7c
(cyrillic-koi8): Add charset-origin-alist property.
Kenichi Handa <handa@m17n.org>
parents:
23158
diff
changeset
|
224 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
225 |
18520
383d11185239
Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents:
18454
diff
changeset
|
226 (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj) |
18308 | 227 |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
228 (define-ccl-program ccl-encode-alternativnyj-font |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
229 '(0 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
230 ((r1 |= 128) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
231 (r1 = r1 ,cyrillic-alternativnyj-encode-table))) |
17085
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
232 "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
|
233 |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
234 (setq font-ccl-encoder-alist |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
235 (cons (cons "alternativnyj" ccl-encode-alternativnyj-font) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
236 font-ccl-encoder-alist)) |
4dafa5431293
Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
237 |
22881
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
238 (defvar cyrillic-alternativnyj-nonascii-translation-table |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
239 (make-translation-table-from-vector cyrillic-alternativnyj-decode-table) |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
240 "Value of `nonascii-translation-table' in Cyrillic-ALT language environment.") |
e0e17bbd8e6c
(cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents:
21663
diff
changeset
|
241 |
17993
73869115ae0a
Most of setup-LANGUAGE-environment functions are
Kenichi Handa <handa@m17n.org>
parents:
17841
diff
changeset
|
242 (set-language-info-alist |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
243 "Cyrillic-ALT" `((charset cyrillic-iso8859-5) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
244 (nonascii-translation |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
245 . ,cyrillic-alternativnyj-nonascii-translation-table) |
20745 | 246 (coding-system cyrillic-alternativnyj) |
247 (coding-priority cyrillic-alternativnyj) | |
24946
0856eb4dd6ec
("Cyrillic-KOI8", "Cyrillic-ALT"): Use cyrillic-jcuken as default input method.
Richard M. Stallman <rms@gnu.org>
parents:
24297
diff
changeset
|
248 (input-method . "cyrillic-jcuken") |
22983
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
249 (features cyril-util) |
7a010b8c0d99
("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents:
22881
diff
changeset
|
250 (unibyte-display . cyrillic-alternativnyj) |
19451
933bea774c3c
Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents:
18520
diff
changeset
|
251 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") |
20745 | 252 (documentation . "Support for Cyrillic ALTERNATIVNYJ.")) |
253 '("Cyrillic")) | |
17052 | 254 |
255 ;;; cyrillic.el ends here |