annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 ;;; cyrillic.el --- Support for Cyrillic -*- coding: iso-2022-7bit; -*-
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 ;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 ;; Licensed to the Free Software Foundation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 ;; Copyright (C) 1997 MORIOKA Tomohiko
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
6 ;; Copyright (C) 2001 Ben Wing.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 ;; Keywords: multilingual, Cyrillic
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 ;; This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ;; XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 ;; under the terms of the GNU General Public License as published by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 ;; any later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 ;; XEmacs is distributed in the hope that it will be useful, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 ;; General Public License for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 ;; along with XEmacs; see the file COPYING. If not, write to the Free
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 ;; 02111-1307, USA.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 ;;; Commentary:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
29 ;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ are
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
30 ;; converted to ISO8859-5 internally.
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
31
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
32 ;; Windows-1251 support deleted because XEmacs has automatic support.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 ;;; Code:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
36 ;; Cyrillic syntax
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 (modify-syntax-entry 'cyrillic-iso8859-5 "w")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 (modify-syntax-entry ?,L-(B ".")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 (modify-syntax-entry ?,Lp(B ".")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 (modify-syntax-entry ?,L}(B ".")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 ;;; CYRILLIC
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
46 ;; ISO-8859-5
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 (make-coding-system
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 'iso-8859-5 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
50 "ISO-8859-5 (Cyrillic)"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 '(charset-g0 ascii
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 charset-g1 cyrillic-iso8859-5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 charset-g2 t
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 charset-g3 t
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 mnemonic "ISO8/Cyr"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 ))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 (set-language-info-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 "Cyrillic-ISO" '((charset cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 (tutorial . "TUTORIAL.ru")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 (coding-system iso-8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 (coding-priority iso-8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 (input-method . "cyrillic-yawerty")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 (features cyril-util)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 (documentation . "Support for Cyrillic ISO-8859-5."))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 '("Cyrillic"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
69 ;; KOI-8
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 (eval-and-compile
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 (defvar cyrillic-koi8-r-decode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 [
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 ?$B(!(B ?$B("(B ?$B(#(B ?$B($(B ?$B(&(B ?$B(%(B ?$B('(B ?$B()(B ?$B(((B ?$B(*(B ?$B(+(B 32 ?$(G#'(B ?$(G#+(B ?$(G#/(B 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 32 ?$(C"F(B 32 32 ?$B"#(B 32 ?$B"e(B ?$A!V(B ?$A!\(B ?$A!](B ?,L (B 32 ?,A0(B ?,A2(B ?,A7(B ?,Aw(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 ?$(G#D(B 32 32 ?,Lq(B 32 32 32 32 32 32 32 32 32 32 32 ?$(G#E(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 32 32 ?$(G#G(B ?,L!(B 32 32 32 32 32 32 32 32 ?$(G#F(B 32 32 ?,A)(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 ?,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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 ?,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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 ?,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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 ?,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 ]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 "Cyrillic KOI8-R decoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 (defvar cyrillic-koi8-r-encode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 (let ((table (make-vector 256 32))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 (i 0))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 (while (< i 256)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 (let* ((ch (aref cyrillic-koi8-r-decode-table i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 (split (split-char ch)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 (cond ((eq (car split) 'cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 (aset table (logior (nth 1 split) 128) i)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101 )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 ((eq ch 32))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 ((eq (car split) 'ascii)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 (aset table ch i)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 )))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 (setq i (1+ i)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 table)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 "Cyrillic KOI8-R encoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 (define-ccl-program ccl-decode-koi8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 `(3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 (write-read-repeat r0 ,cyrillic-koi8-r-decode-table))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 "CCL program to decode KOI8.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 (define-ccl-program ccl-encode-koi8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 `(1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 (write-read-repeat r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 (write-read-repeat r0 , cyrillic-koi8-r-encode-table))))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 "CCL program to encode KOI8.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 ;; (define-coding-system-alias 'koi8-r 'cyrillic-koi8)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 ;; (define-coding-system-alias 'koi8 'cyrillic-koi8)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 (make-coding-system
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 'koi8-r 'ccl
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
134 "KOI8-R (Cyrillic)"
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
135 '(decode ccl-decode-koi8
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
136 encode ccl-encode-koi8
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137 mnemonic "KOI8"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
139 ;; `iso-8-1' is not correct, but XEmacs doesn't have a `ccl' category
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140 (coding-system-put 'koi8-r 'category 'iso-8-1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 ;; (define-ccl-program ccl-encode-koi8-font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 ;; `(0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 ;; ((r1 |= 128)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 ;; (r1 = r1 ,cyrillic-koi8-r-encode-table)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 ;; "CCL program to encode Cyrillic chars to KOI font.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 ;; (setq font-ccl-encoder-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 ;; (cons (cons "koi8" ccl-encode-koi8-font) font-ccl-encoder-alist))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 ;; (defvar cyrillic-koi8-r-nonascii-translation-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 ;; (make-translation-table-from-vector cyrillic-koi8-r-decode-table)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 ;; "Value of `nonascii-translation-table' in Cyrillic-KOI8 language environment..")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 (set-language-info-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 "Cyrillic-KOI8" '((charset cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 (coding-system koi8-r)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 (coding-priority koi8-r)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 (input-method . "cyrillic-yawerty")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 (features cyril-util)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
161 (locale "ru")
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
162 (mswindows-locale . "RUSSIAN")
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 (tutorial . "TUTORIAL.ru")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 (documentation . "Support for Cyrillic KOI8-R."))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 '("Cyrillic"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
168 ;;; WINDOWS-1251 deleted; we support it automatically in XEmacs
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
169
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
170 ;;; ALTERNATIVNYJ
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 (eval-and-compile
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 (defvar cyrillic-alternativnyj-decode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175 [
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 ?,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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 ?,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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190 ?,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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191 ?,L!(B ?,Lq(B 32 32 32 32 32 32 32 32 32 32 32 32 32 ?,Lp(B]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192 "Cyrillic ALTERNATIVNYJ decoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 (defvar cyrillic-alternativnyj-encode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 (let ((table (make-vector 256 32))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 (i 0))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197 (while (< i 256)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198 (let* ((ch (aref cyrillic-alternativnyj-decode-table i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 (split (split-char ch)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 (if (eq (car split) 'cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 (aset table (logior (nth 1 split) 128) i)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 (if (/= ch 32)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 (aset table ch i))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204 (setq i (1+ i)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 table)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206 "Cyrillic ALTERNATIVNYJ encoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208 )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 (define-ccl-program ccl-decode-alternativnyj
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212 `(3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 (write-read-repeat r0 ,cyrillic-alternativnyj-decode-table))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216 "CCL program to decode Alternativnyj.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
217
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 (define-ccl-program ccl-encode-alternativnyj
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219 `(1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222 (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 (write-read-repeat r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225 (write-read-repeat r0 ,cyrillic-alternativnyj-encode-table))))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226 "CCL program to encode Alternativnyj.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228 ;; (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 (make-coding-system
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
231 'alternativnyj 'ccl
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
232 "Alternativnyj (Cyrillic)"
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
233 '(decode ccl-decode-alternativnyj
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
234 encode ccl-encode-alternativnyj
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
235 mnemonic "Cy.Alt"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
236
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
237 ;; `iso-8-1' is not correct, but XEmacs doesn't have `ccl' category
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
238 (coding-system-put 'alternativnyj 'category 'iso-8-1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 ;; (define-ccl-program ccl-encode-alternativnyj-font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241 ;; '(0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
242 ;; ((r1 |= 128)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
243 ;; (r1 = r1 ,cyrillic-alternativnyj-encode-table)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
244 ;; "CCL program to encode Cyrillic chars to Alternativnyj font.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
245
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246 ;; (setq font-ccl-encoder-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247 ;; (cons (cons "alternativnyj" ccl-encode-alternativnyj-font)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
248 ;; font-ccl-encoder-alist))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
249
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
250 ;; (defvar cyrillic-alternativnyj-nonascii-translation-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
251 ;; (make-translation-table-from-vector cyrillic-alternativnyj-decode-table)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252 ;; "Value of `nonascii-translation-table' in Cyrillic-ALT language environment.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
253
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
254 (set-language-info-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
255 "Cyrillic-ALT" '((charset cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
256 (coding-system alternativnyj)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
257 (coding-priority alternativnyj)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
258 (input-method . "cyrillic-yawerty")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
259 (features cyril-util)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
260 (tutorial . "TUTORIAL.ru")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
261 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262 (documentation . "Support for Cyrillic ALTERNATIVNYJ."))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263 '("Cyrillic"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
264
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
265 ;;; cyrillic.el ends here