Mercurial > hg > xemacs-beta
comparison lisp/mule/cyrillic.el @ 771:943eaba38521
[xemacs-hg @ 2002-03-13 08:51:24 by ben]
The big ben-mule-21-5 check-in!
Various files were added and deleted. See CHANGES-ben-mule.
There are still some test suite failures. No crashes, though.
Many of the failures have to do with problems in the test suite itself
rather than in the actual code. I'll be addressing these in the next
day or so -- none of the test suite failures are at all critical.
Meanwhile I'll be trying to address the biggest issues -- i.e. build
or run failures, which will almost certainly happen on various platforms.
All comments should be sent to ben@xemacs.org -- use a Cc: if necessary
when sending to mailing lists. There will be pre- and post- tags,
something like
pre-ben-mule-21-5-merge-in, and
post-ben-mule-21-5-merge-in.
author | ben |
---|---|
date | Wed, 13 Mar 2002 08:54:06 +0000 |
parents | 576fb035e263 |
children | 2923009caf47 |
comparison
equal
deleted
inserted
replaced
770:336a418893b5 | 771:943eaba38521 |
---|---|
1 ;;; cyrillic.el --- Support for Cyrillic -*- coding: iso-2022-7bit; -*- | 1 ;;; cyrillic.el --- Support for Cyrillic -*- coding: iso-2022-7bit; -*- |
2 | 2 |
3 ;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN. | 3 ;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN. |
4 ;; Licensed to the Free Software Foundation. | 4 ;; Licensed to the Free Software Foundation. |
5 ;; Copyright (C) 1997 MORIOKA Tomohiko | 5 ;; Copyright (C) 1997 MORIOKA Tomohiko |
6 ;; Copyright (C) 2001 Ben Wing. | |
6 | 7 |
7 ;; Keywords: multilingual, Cyrillic | 8 ;; Keywords: multilingual, Cyrillic |
8 | 9 |
9 ;; This file is part of XEmacs. | 10 ;; This file is part of XEmacs. |
10 | 11 |
23 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | 24 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
24 ;; 02111-1307, USA. | 25 ;; 02111-1307, USA. |
25 | 26 |
26 ;;; Commentary: | 27 ;;; Commentary: |
27 | 28 |
28 ;; The character set ISO8859-5 is supported. | 29 ;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ are |
29 ;; KOI-8, Windows-1251, and ALTERNATIVNYJ are converted to ISO8859-5 | 30 ;; converted to ISO8859-5 internally. |
30 ;; internally. | 31 |
32 ;; Windows-1251 support deleted because XEmacs has automatic support. | |
31 | 33 |
32 ;;; Code: | 34 ;;; Code: |
33 | 35 |
34 ;; Cyrillic syntax | 36 ;; Cyrillic syntax |
35 (modify-syntax-entry 'cyrillic-iso8859-5 "w") | 37 (modify-syntax-entry 'cyrillic-iso8859-5 "w") |
43 | 45 |
44 ;; ISO-8859-5 | 46 ;; ISO-8859-5 |
45 | 47 |
46 (make-coding-system | 48 (make-coding-system |
47 'iso-8859-5 'iso2022 | 49 'iso-8859-5 'iso2022 |
48 "ISO-8859-5 (ISO 2022 based 8-bit encoding for Cyrillic script)" | 50 "ISO-8859-5 (Cyrillic)" |
49 '(charset-g0 ascii | 51 '(charset-g0 ascii |
50 charset-g1 cyrillic-iso8859-5 | 52 charset-g1 cyrillic-iso8859-5 |
51 charset-g2 t | 53 charset-g2 t |
52 charset-g3 t | 54 charset-g3 t |
53 mnemonic "ISO8/Cyr" | 55 mnemonic "ISO8/Cyr" |
127 ;; (define-coding-system-alias 'koi8-r 'cyrillic-koi8) | 129 ;; (define-coding-system-alias 'koi8-r 'cyrillic-koi8) |
128 ;; (define-coding-system-alias 'koi8 'cyrillic-koi8) | 130 ;; (define-coding-system-alias 'koi8 'cyrillic-koi8) |
129 | 131 |
130 (make-coding-system | 132 (make-coding-system |
131 'koi8-r 'ccl | 133 'koi8-r 'ccl |
132 "KOI8-R 8-bit encoding for Cyrillic." | 134 "KOI8-R (Cyrillic)" |
133 '(decode ccl-decode-koi8 | 135 '(decode ccl-decode-koi8 |
134 encode ccl-encode-koi8 | 136 encode ccl-encode-koi8 |
135 mnemonic "KOI8")) | 137 mnemonic "KOI8")) |
136 | 138 |
137 ;; `iso-8-1' is not correct, but XEmacs doesn't have a `ccl' category | 139 ;; `iso-8-1' is not correct, but XEmacs doesn't have a `ccl' category |
154 "Cyrillic-KOI8" '((charset cyrillic-iso8859-5) | 156 "Cyrillic-KOI8" '((charset cyrillic-iso8859-5) |
155 (coding-system koi8-r) | 157 (coding-system koi8-r) |
156 (coding-priority koi8-r) | 158 (coding-priority koi8-r) |
157 (input-method . "cyrillic-yawerty") | 159 (input-method . "cyrillic-yawerty") |
158 (features cyril-util) | 160 (features cyril-util) |
161 (locale "ru") | |
162 (mswindows-locale . "RUSSIAN") | |
159 (tutorial . "TUTORIAL.ru") | 163 (tutorial . "TUTORIAL.ru") |
160 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") | 164 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") |
161 (documentation . "Support for Cyrillic KOI8-R.")) | 165 (documentation . "Support for Cyrillic KOI8-R.")) |
162 '("Cyrillic")) | 166 '("Cyrillic")) |
163 | 167 |
164 ;;; WINDOWS-1251 | 168 ;;; WINDOWS-1251 deleted; we support it automatically in XEmacs |
165 | |
166 (eval-and-compile | |
167 | |
168 (defvar cyrillic-windows-1251-decode-table | |
169 [ | |
170 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
171 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
172 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
173 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | |
174 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | |
175 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | |
176 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |
177 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |
178 ?,L"(B ?,L#(B 32 ?,Ls(B 32 32 32 32 32 32 ?,L)(B 32 ?,L*(B ?,L,(B ?,L+(B ?,L/(B ;" | |
179 ?,Lr(B 32 32 32 32 32 32 32 32 32 ?,Ly(B 32 ?,Lz(B ?,L|(B ?,L{(B ?,L(B | |
180 ?,L (B ?,L.(B ?,L~(B ?,L((B ?,A$(B 32 ?,A&(B ?,L}(B ?,L!(B ?,A)(B ?,L$(B ?,A+(B ?,A,(B ?,L-(B ?,A.(B ?,L'(B | |
181 ?,A0(B ?,A1(B ?,L&(B ?,Lv(B 32 ?,A5(B ?,A6(B ?,A7(B ?,Lq(B ?,Lp(B ?,Lt(B ?,A;(B ?,Lx(B ?,L%(B ?,Lu(B ?,Lw(B | |
182 ?,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 | |
183 ?,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 | |
184 ?,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 | |
185 ?,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 ] | |
186 "Cyrillic Windows-1251 decoding table.") | |
187 | |
188 (defvar cyrillic-windows-1251-encode-table | |
189 (let ((table (make-vector 256 32)) | |
190 (i 0)) | |
191 (while (< i 256) | |
192 (let* ((ch (aref cyrillic-windows-1251-decode-table i)) | |
193 (split (split-char ch))) | |
194 (cond ((eq (car split) 'cyrillic-iso8859-5) | |
195 (aset table (logior (nth 1 split) 128) i) | |
196 ) | |
197 ((eq ch 32)) | |
198 ((eq (car split) 'ascii) | |
199 (aset table ch i) | |
200 ))) | |
201 (setq i (1+ i))) | |
202 table) | |
203 "Cyrillic Windows-1251 encoding table.") | |
204 | |
205 ) | |
206 | |
207 (define-ccl-program ccl-decode-windows1251 | |
208 `(3 | |
209 ((read r0) | |
210 (loop | |
211 (write-read-repeat r0 ,cyrillic-windows-1251-decode-table)))) | |
212 "CCL program to decode Windows-1251.") | |
213 | |
214 (define-ccl-program ccl-encode-windows1251 | |
215 `(1 | |
216 ((read r0) | |
217 (loop | |
218 (if (r0 != ,(charset-id 'cyrillic-iso8859-5)) | |
219 (write-read-repeat r0) | |
220 ((read r0) | |
221 (write-read-repeat r0 , cyrillic-windows-1251-encode-table)))))) | |
222 "CCL program to encode Windows-1251.") | |
223 | |
224 (make-coding-system | |
225 'windows-1251 'ccl | |
226 "Coding-system used for Windows-1251." | |
227 '(decode ccl-decode-windows1251 | |
228 encode ccl-encode-windows1251 | |
229 mnemonic "CyrW")) | |
230 | |
231 ;; `iso-8-1' is not correct, but XEmacs doesn't have a `ccl' category | |
232 (coding-system-put 'windows-1251 'category 'iso-8-1) | |
233 | |
234 (set-language-info-alist | |
235 "Cyrillic-Win" '((charset cyrillic-iso8859-5) | |
236 (coding-system windows-1251) | |
237 (coding-priority windows-1251) | |
238 (input-method . "cyrillic-yawerty") | |
239 (features cyril-util) | |
240 (tutorial . "TUTORIAL.ru") | |
241 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") | |
242 (documentation . "Support for Cyrillic Windows-1251.")) | |
243 '("Cyrillic")) | |
244 | 169 |
245 ;;; ALTERNATIVNYJ | 170 ;;; ALTERNATIVNYJ |
246 | 171 |
247 (eval-and-compile | 172 (eval-and-compile |
248 | 173 |
302 | 227 |
303 ;; (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj) | 228 ;; (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj) |
304 | 229 |
305 (make-coding-system | 230 (make-coding-system |
306 'alternativnyj 'ccl | 231 'alternativnyj 'ccl |
307 "Coding-system used for Alternativnyj" | 232 "Alternativnyj (Cyrillic)" |
308 '(decode ccl-decode-alternativnyj | 233 '(decode ccl-decode-alternativnyj |
309 encode ccl-encode-alternativnyj | 234 encode ccl-encode-alternativnyj |
310 mnemonic "Cy.Alt")) | 235 mnemonic "Cy.Alt")) |
311 | 236 |
312 ;; `iso-8-1' is not correct, but XEmacs doesn't have `ccl' category | 237 ;; `iso-8-1' is not correct, but XEmacs doesn't have `ccl' category |