annotate lisp/language/cyrillic.el @ 54283:d0c3cadb7e21

(help-at-pt-timer-delay): Minor doc fix (remove stray space).
author Luc Teirlinck <teirllm@auburn.edu>
date Fri, 05 Mar 2004 04:42:46 +0000
parents e349592390bc
children d3defd7cdd9f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
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.
49795
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
5 ;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
6
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
7 ;; Author: Kenichi Handa <handa@etl.go.jp>
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
8 ;; Keywords: multilingual, Cyrillic, i18n
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
9
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
11
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
15 ;; any later version.
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
16
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
21
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
17071
70194012fb3a Fix FSF address in comment.
Karl Heuer <kwzh@gnu.org>
parents: 17052
diff changeset
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
70194012fb3a Fix FSF address in comment.
Karl Heuer <kwzh@gnu.org>
parents: 17052
diff changeset
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
70194012fb3a Fix FSF address in comment.
Karl Heuer <kwzh@gnu.org>
parents: 17052
diff changeset
25 ;; Boston, MA 02111-1307, USA.
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
26
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
27 ;;; Commentary:
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
28
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
29 ;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
30 ;; are converted to Unicode internally. See
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
31 ;; <URL:http://www.ecma.ch/ecma1/STAND/ECMA-113.HTM>. For more info
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
32 ;; on Cyrillic charsets, see
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
33 ;; <URL:http://czyborra.com/charsets/cyrillic.html>. The KOI and
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
34 ;; Alternativnyj coding systems should live in code-pages.el, but
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
35 ;; they've always been preloaded and the coding system autoload
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
36 ;; mechanism didn't get accepted, so they have to stay here and
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
37 ;; duplicate code-pages stuff.
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
38
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
39 ;; Note that 8859-5 maps directly onto the Unicode Cyrillic block,
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
40 ;; apart from codepoints 160 (NBSP, c.f. U+0400), 173 (soft hyphen,
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
41 ;; c.f. U+04OD) and 253 (section sign, c.f U+045D). The KOI-8 and
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
42 ;; Alternativnyj coding systems encode both 8859-5 and Unicode.
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
43 ;; ucs-tables.el provides unification for cyrillic-iso-8bit.
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
44
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
45 ;; Customizing `utf-fragment-on-decoding' allows decoding characters
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
46 ;; from KOI and Alternativnyj into 8859-5 where that's possible.
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
47 ;; cyrillic-iso8859-5 characters take half as much space in the buffer
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
48 ;; as the mule-unicode-0100-24ff equivalents, though that's probably
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
49 ;; not normally a big deal.
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
50
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
51 ;;; Code:
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
57 (make-coding-system
18308
b8622afb8a6e Don't make the keymap
Kenichi Handa <handa@m17n.org>
parents: 18203
diff changeset
58 'cyrillic-iso-8bit 2 ?5
42152
e3ae5ef41293 Improving doc strings.
Werner LEMBERG <wl@gnu.org>
parents: 38414
diff changeset
59 "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)."
20745
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
60 '(ascii cyrillic-iso8859-5 nil nil
48387
4cafb19f6c46 (cyrillic-iso-8bit): Make it safe.
Kenichi Handa <handa@m17n.org>
parents: 48158
diff changeset
61 nil nil nil nil nil nil nil nil nil nil nil t)
20745
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
62 '((safe-charsets ascii cyrillic-iso8859-5)
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
63 (mime-charset . iso-8859-5)))
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
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
b8622afb8a6e Don't make the keymap
Kenichi Handa <handa@m17n.org>
parents: 18203
diff changeset
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
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
69 (coding-system cyrillic-iso-8bit)
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
70 (coding-priority cyrillic-iso-8bit)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
76 (documentation . "Support for Cyrillic ISO-8859-5."))
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
77 '("Cyrillic"))
19451
933bea774c3c Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents: 18520
diff changeset
78
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
81 ;; The mule-unicode portion of this is from
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
82 ;; http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT,
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
94 ;; 8859-5 plus Unicode
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
103 ;; All Unicode:
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
115 (let ((table (make-translation-table-from-vector
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
116 cyrillic-koi8-r-decode-table)))
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
117 (define-translation-table 'cyrillic-koi8-r-nonascii-translation-table table)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
118 (define-translation-table 'cyrillic-koi8-r-encode-table
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
121 ;; No point in keeping it around. (It can't be let-bound, since it's
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
122 ;; needed for macro expansion.)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
123 (makunbound 'cyrillic-koi8-r-decode-table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
126 `(4
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
127 ((loop
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
128 (r0 = 0)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
129 (read r1)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
130 (if (r1 < 128)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
131 (write-repeat r1)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
132 ((translate-character cyrillic-koi8-r-nonascii-translation-table r0 r1)
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
133 (translate-character ucs-translation-table-for-decode r0 r1)
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
134 (write-multibyte-character r0 r1)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
135 (repeat))))))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
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
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
140 ((loop
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
141 (read-multibyte-character r0 r1)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
142 (translate-character cyrillic-koi8-r-encode-table r0 r1)
48832
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
143 (if (r0 != ,(charset-id 'ascii))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
144 (if (r0 != ,(charset-id 'eight-bit-graphic))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
145 (if (r0 != ,(charset-id 'eight-bit-control))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
146 (r1 = ??))))
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
147 (write-repeat r1))))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
148 "CCL program to encode KOI8-R.")
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
149
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
150 (defun cyrillic-unify-encoding (table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
151 "Set up equivalent characters in the encoding TABLE.
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
152 This works whether or not the table is Unicode-based or
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
153 8859-5-based. (Only appropriate for Cyrillic.)"
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
154 (let ((table (get table 'translation-table)))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
155 (dotimes (i 96)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
156 (let* ((c (make-char 'cyrillic-iso8859-5 (+ i 32)))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
157 (u ; equivalent Unicode char
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
158 (cond ((eq c ?,L (B) ?,A (B)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
159 ((eq c ?,L-(B) ?,A-(B)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
160 ((eq c ?,L}(B) ?,A'(B)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
161 (t (decode-char 'ucs (+ #x400 i)))))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
162 (ec (aref table c)) ; encoding of 8859-5
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
163 (uc (aref table u))) ; encoding of Unicode
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
164 (unless (memq c '(?,L (B ?,L-(B ?,L}(B)) ; 8859-5 exceptions
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
165 (unless uc
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
166 (aset table u ec))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
167 (unless ec
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
168 (aset table c uc)))))))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
169
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
170 (cyrillic-unify-encoding 'cyrillic-koi8-r-encode-table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
171
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
172 (make-coding-system
18203
0745f30aec66 Adjusted for coding system name change.
Kenichi Handa <handa@m17n.org>
parents: 18155
diff changeset
173 'cyrillic-koi8 4
18116
7839aa2f6765 (koi8-r): Use R for mode line.
Richard M. Stallman <rms@gnu.org>
parents: 17993
diff changeset
174 ;; 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
175 ;; 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
176 ;; 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
177 ;; will have to forgive us.
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
178 ?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
179 '(ccl-decode-koi8 . ccl-encode-koi8)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
180 `((safe-chars . cyrillic-koi8-r-encode-table)
22881
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
181 (mime-charset . koi8-r)
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
182 (valid-codes (0 . 255))
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
183 (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
184
18520
383d11185239 Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents: 18454
diff changeset
185 (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
186 (define-coding-system-alias 'koi8 'cyrillic-koi8)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
187 (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
188
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
189 ;; Allow displaying some of KOI & al with an 8859-5-encoded font. We
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
190 ;; won't bother about the exceptions when encoding the font, since
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
191 ;; NBSP will fall through below and work anyhow, and we'll have
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
192 ;; avoided setting the fontset for the other two to 8859-5 -- they're
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
193 ;; not in KOI and Alternativnyj anyhow.
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
194 (define-ccl-program ccl-encode-8859-5-font
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
195 `(0
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
196 ((if (r0 == ,(charset-id 'cyrillic-iso8859-5))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
197 (r1 += 128)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
198 (if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
199 (r1 = (r2 + 128))))))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
200 "Encode ISO 8859-5 and Cyrillic Unicode chars to 8859-5 font.")
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
201
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
202 (add-to-list 'font-ccl-encoder-alist '("iso8859-5" . ccl-encode-8859-5-font))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
203
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
204 ;; 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
205 (define-ccl-program ccl-encode-koi8-font
22881
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
206 `(0
53356
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
207 (if (r2 >= 0)
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
208 ((r1 <<= 7)
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
209 (r1 += r2)))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
210 (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
211 "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
212
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
213 (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
214
19451
933bea774c3c Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents: 18520
diff changeset
215 (set-language-info-alist
22983
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
216 "Cyrillic-KOI8" `((charset cyrillic-iso8859-5)
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
217 (nonascii-translation
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
218 . ,(get 'cyrillic-koi8-r-nonascii-translation-table
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
219 'translation-table))
20745
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
220 (coding-system cyrillic-koi8)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
221 (coding-priority cyrillic-koi8 cyrillic-iso-8bit)
49795
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
222 (input-method . "russian-typewriter")
22983
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
223 (features cyril-util)
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
224 (unibyte-display . cyrillic-koi8)
19451
933bea774c3c Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents: 18520
diff changeset
225 (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
226 (documentation . "Support for Cyrillic KOI8-R."))
20745
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
227 '("Cyrillic"))
19451
933bea774c3c Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents: 18520
diff changeset
228
49795
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
229 (set-language-info-alist
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
230 "Russian" `((charset cyrillic-iso8859-5)
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
231 (nonascii-translation
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
232 . ,(get 'cyrillic-koi8-r-nonascii-translation-table
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
233 'translation-table))
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
234 (coding-system cyrillic-koi8)
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
235 (coding-priority cyrillic-koi8 cyrillic-iso-8bit)
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
236 (input-method . "russian-computer")
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
237 (features cyril-util)
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
238 (unibyte-display . cyrillic-koi8)
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
239 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
240 (documentation . "\
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
241 Support for Russian using koi8-r and the russian-computer input method.")
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
242 (tutorial . "TUTORIAL.ru"))
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
243 '("Cyrillic"))
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
244
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
245
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
246 (defvar cyrillic-koi8-u-decode-table
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
247 [
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
248 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
249 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
250 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
251 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
252 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
253 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
254 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
255 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
256 ;; All Unicode:
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
257 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
258 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
259 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
260 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
261 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
262 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
263 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
264 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
265 ;; 8859-5 plus Unicode:
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
266 ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
267 ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
268 ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
269 ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
270 ?,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
271 ?,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
272 ?,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
273 ?,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
274 ]
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
275 "Cyrillic KOI8-U decoding table.")
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
276
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
277 (let ((table (make-translation-table-from-vector
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
278 cyrillic-koi8-u-decode-table)))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
279 (define-translation-table 'cyrillic-koi8-u-nonascii-translation-table table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
280 (define-translation-table 'cyrillic-koi8-u-encode-table
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
281 (char-table-extra-slot table 0)))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
282
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
283 (makunbound 'cyrillic-koi8-u-decode-table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
284
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
285 (define-ccl-program ccl-decode-koi8-u
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
286 `(4
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
287 ((loop
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
288 (r0 = 0)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
289 (read r1)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
290 (if (r1 < 128)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
291 (write-repeat r1)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
292 ((translate-character cyrillic-koi8-u-nonascii-translation-table r0 r1)
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
293 (translate-character ucs-translation-table-for-decode r0 r1)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
294 (write-multibyte-character r0 r1)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
295 (repeat))))))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
296 "CCL program to decode KOI8-U.")
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
297
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
298 (define-ccl-program ccl-encode-koi8-u
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
299 `(1
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
300 ((loop
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
301 (read-multibyte-character r0 r1)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
302 (translate-character cyrillic-koi8-u-encode-table r0 r1)
48832
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
303 (if (r0 != ,(charset-id 'ascii))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
304 (if (r0 != ,(charset-id 'eight-bit-graphic))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
305 (if (r0 != ,(charset-id 'eight-bit-control))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
306 (r1 = ??))))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
307 (write-repeat r1))))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
308 "CCL program to encode KOI8-U.")
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
309
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
310 (cyrillic-unify-encoding 'cyrillic-koi8-u-encode-table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
311
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
312 (make-coding-system
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
313 'koi8-u 4
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
314 ?U "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)"
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
315 '(ccl-decode-koi8-u . ccl-encode-koi8-u)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
316 `((safe-chars . cyrillic-koi8-u-encode-table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
317 (mime-charset . koi8-u)
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
318 (valid-codes (0 . 255))
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
319 (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
320
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
321 (define-ccl-program ccl-encode-koi8-u-font
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
322 `(0
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
323 (translate-character cyrillic-koi8-u-encode-table r0 r1))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
324 "CCL program to encode Cyrillic chars to KOI-U font.")
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
325
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
326 (add-to-list 'font-ccl-encoder-alist '("koi8-u" . ccl-encode-koi8-u-font))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
327
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
328 (set-language-info-alist
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
329 "Ukrainian" `((coding-system koi8-u)
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
330 (coding-priority koi8-u)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
331 (nonascii-translation
47416
2ff3f5116672 ("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents: 46500
diff changeset
332 . ,(get 'cyrillic-koi8-u-nonascii-translation-table
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
333 'translation-table))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
334 (input-method . "ukrainian-computer")
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
335 (documentation
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
336 . "Support for Ukrainian with KOI8-U character set."))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
337 '("Cyrillic"))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
338
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
339 ;;; ALTERNATIVNYJ stuff
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
340
47416
2ff3f5116672 ("Ukrainian"): Fix nonascii-translation.
Dave Love <fx@gnu.org>
parents: 46500
diff changeset
341 ;; 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
342 ;; statements both that it's the same as cp866 and somewhat different,
47906
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
343 ;; but nothing that looks really definitive.
22881
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
344 (defvar cyrillic-alternativnyj-decode-table
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
345 [
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
346 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
347 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
348 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
349 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
350 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
351 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
352 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
353 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
354 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
355 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
356 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
357 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
358 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
359 ;; ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
360 ;; ?$,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
47906
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
361 ;; ?$,1(!(B ?$,1(q(B ?$,1ry(B ?$,1rx(B ?$,1%A(B ?$,1%@(B ?$,1s:(B ?$,1s9(B ?$,1vq(B ?$,1vs(B ?,A1(B ?,Aw(B ?$,1uV(B ?,A$(B ?$,2!`(B ?,A (B ;
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
362 ;; 8859+Unicode
22881
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
363 ?,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
364 ?,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
365 ?,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
366 ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
367 ?$,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
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
368 ?$,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
369 ?,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
47906
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
370 ;; Taken from http://www.cyrillic.com/ref/cyrillic/koi-8alt.html
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
371 ;; with guesses for the Unicodes of the glyphs in the absence of a
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
372 ;; table.
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
373 ?,L!(B ?,Lq(B ?$,1ry(B ?$,1rx(B ?$,1%A(B ?$,1%@(B ?$,1s:(B ?$,1s9(B ?$,1vq(B ?$,1vs(B ?,A1(B ?,Aw(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
374 "Cyrillic ALTERNATIVNYJ decoding table.")
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
375
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
376 (let ((table (make-translation-table-from-vector
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
377 cyrillic-alternativnyj-decode-table)))
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
378 (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
379 table)
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
380 (define-translation-table 'cyrillic-alternativnyj-encode-table
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
381 (char-table-extra-slot table 0)))
22881
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
382
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
383 (makunbound 'cyrillic-alternativnyj-decode-table)
22881
e0e17bbd8e6c (cyrillic-koi8-r-decode-table): New
Kenichi Handa <handa@m17n.org>
parents: 21663
diff changeset
384
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
385 (define-ccl-program ccl-decode-alternativnyj
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
386 `(4
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
387 ((loop
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
388 (r0 = 0)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
389 (read r1)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
390 (if (r1 < 128)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
391 (write-repeat r1)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
392 ((translate-character cyrillic-alternativnyj-nonascii-translation-table
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
393 r0 r1)
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
394 (translate-character ucs-translation-table-for-decode r0 r1)
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
395 (write-multibyte-character r0 r1)
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
396 (repeat))))))
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
397 "CCL program to decode Alternativnyj.")
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
398
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
399 (define-ccl-program ccl-encode-alternativnyj
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
400 `(1
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
401 ((loop
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
402 (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
403 (translate-character cyrillic-alternativnyj-encode-table r0 r1)
48832
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
404 (if (r0 != ,(charset-id 'ascii))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
405 (if (r0 != ,(charset-id 'eight-bit-graphic))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
406 (if (r0 != ,(charset-id 'eight-bit-control))
351ae4e51f08 (ccl-encode-koi8, ccl-encode-koi8-u)
Kenichi Handa <handa@m17n.org>
parents: 48547
diff changeset
407 (r1 = ??))))
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
408 (write-repeat r1))))
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
409 "CCL program to encode Alternativnyj.")
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
410
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
411 (cyrillic-unify-encoding 'cyrillic-alternativnyj-encode-table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
412
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
413 (make-coding-system
18308
b8622afb8a6e Don't make the keymap
Kenichi Handa <handa@m17n.org>
parents: 18203
diff changeset
414 'cyrillic-alternativnyj 4 ?A
47906
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
415 "ALTERNATIVNYJ 8-bit encoding for Cyrillic."
21663
a03ddc4a728b FLAGS arguments for make-coding-system changed.
Kenichi Handa <handa@m17n.org>
parents: 20745
diff changeset
416 '(ccl-decode-alternativnyj . ccl-encode-alternativnyj)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
417 `((safe-chars . cyrillic-alternativnyj-encode-table)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
418 (valid-codes (0 . 255))
47702
e0786a68f34e (ccl-decode-koi8): Refer to
Kenichi Handa <handa@m17n.org>
parents: 47416
diff changeset
419 (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
420
18520
383d11185239 Swap args to define-coding-system-alias.
Richard M. Stallman <rms@gnu.org>
parents: 18454
diff changeset
421 (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
18308
b8622afb8a6e Don't make the keymap
Kenichi Handa <handa@m17n.org>
parents: 18203
diff changeset
422
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
423 (define-ccl-program ccl-encode-alternativnyj-font
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
424 `(0
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
425 (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
426 "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
427
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
428 (add-to-list 'font-ccl-encoder-alist
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
429 '("alternativnyj" . ccl-encode-alternativnyj-font))
17085
4dafa5431293 Change coding system name koi8 to koi8-r.
Kenichi Handa <handa@m17n.org>
parents: 17071
diff changeset
430
17993
73869115ae0a Most of setup-LANGUAGE-environment functions are
Kenichi Handa <handa@m17n.org>
parents: 17841
diff changeset
431 (set-language-info-alist
22983
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
432 "Cyrillic-ALT" `((charset cyrillic-iso8859-5)
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
433 (nonascii-translation
29453
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
434 . ,(get 'cyrillic-alternativnyj-nonascii-translation-table
22f8105a7dc7 Remove eval-when-compile.
Kenichi Handa <handa@m17n.org>
parents: 25827
diff changeset
435 'translation-table))
20745
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
436 (coding-system cyrillic-alternativnyj)
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
437 (coding-priority cyrillic-alternativnyj)
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
438 (input-method . "russian-typewriter")
22983
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
439 (features cyril-util)
7a010b8c0d99 ("LANUGAGE-ENVIRONMENT"): Delete property setup-function or change
Kenichi Handa <handa@m17n.org>
parents: 22881
diff changeset
440 (unibyte-display . cyrillic-alternativnyj)
19451
933bea774c3c Make describe-cyrillic-environment-map and
Kenichi Handa <handa@m17n.org>
parents: 18520
diff changeset
441 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
20745
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
442 (documentation . "Support for Cyrillic ALTERNATIVNYJ."))
00aa1d4fa378 Remove setting up of
Kenichi Handa <handa@m17n.org>
parents: 20233
diff changeset
443 '("Cyrillic"))
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
444
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
445 (set-language-info-alist
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
446 "Tajik" `((coding-system cyrillic-koi8-t)
49795
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
447 (coding-priority cyrillic-koi8-t)
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
448 (nonascii-translation
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
449 . ,(get 'decode-koi8-t 'translation-table))
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
450 (input-method . "russian-typewriter") ; fixme?
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
451 (features code-pages)
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
452 (documentation . "Support for Tajik using KOI8-T."))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
453 '("Cyrillic"))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
454
52437
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
455 (eval-and-compile
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
456 (setq
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
457 non-iso-charset-alist
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
458 (cp-make-coding-system
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
459 windows-1251
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
460 [?\$,1("(B ?\$,1(#(B ?\$,1rz(B ?\$,1(s(B ?\$,1r~(B ?\$,1s&(B ?\$,1s (B ?\$,1s!(B ?\$,1tL(B ?\$,1s0(B ?\$,1()(B ?\$,1s9(B ?\$,1(*(B ?\$,1(,(B ?\$,1(+(B ?\$,1(/(B ?\$,1(r(B
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
461 ?\$,1rx(B ?\$,1ry(B ?\$,1r|(B ?\$,1r}(B ?\$,1s"(B ?\$,1rs(B ?\$,1rt(B nil ?\$,1ub(B ?\$,1(y(B ?\$,1s:(B ?\$,1(z(B ?\$,1(|(B ?\$,1({(B ?\$,1((B ?\,A (B ?\$,1(.(B
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
462 ?\$,1(~(B ?\$,1(((B ?\,A$(B ?\$,1)P(B ?\,A&(B ?\,A'(B ?\$,1(!(B ?\,A)(B ?\$,1($(B ?\,A+(B ?\,A,(B ?\,A-(B ?\,A.(B ?\$,1('(B ?\,A0(B ?\,A1(B ?\$,1(&(B
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
463 ?\$,1(v(B ?\$,1)Q(B ?\,A5(B ?\,A6(B ?\,A7(B ?\$,1(q(B ?\$,1uV(B ?\$,1(t(B ?\,A;(B ?\$,1(x(B ?\$,1(%(B ?\$,1(u(B ?\$,1(w(B ?\$,1(0(B ?\$,1(1(B ?\$,1(2(B ?\$,1(3(B
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
464 ?\$,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 ?\$,1(@(B ?\$,1(A(B ?\$,1(B(B ?\$,1(C(B ?\$,1(D(B
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
465 ?\$,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 ?\$,1(P(B ?\$,1(Q(B ?\$,1(R(B ?\$,1(S(B ?\$,1(T(B ?\$,1(U(B
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
466 ?\$,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 ?\$,1(`(B ?\$,1(a(B ?\$,1(b(B ?\$,1(c(B ?\$,1(d(B ?\$,1(e(B ?\$,1(f(B
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
467 ?\$,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] nil ?b)))
26caee4939f4 ("Windows-1251"): Deleted.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
468
52720
b318ad3d41ce (cp1251): Alias for windows-1251.
Dave Love <fx@gnu.org>
parents: 52437
diff changeset
469 (define-coding-system-alias 'cp1251 'windows-1251)
b318ad3d41ce (cp1251): Alias for windows-1251.
Dave Love <fx@gnu.org>
parents: 52437
diff changeset
470
53242
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
471 (let ((elt `("microsoft-cp1251" windows-1251 1
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
472 ,(get 'encode-windows-1251 'translation-table)))
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
473 (slot (assoc "microsoft-cp1251" ctext-non-standard-encodings-alist)))
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
474 (if slot
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
475 (setcdr slot (cdr elt))
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
476 (push elt ctext-non-standard-encodings-alist)))
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
477
53356
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
478 (define-ccl-program ccl-encode-windows-1251-font
53672
e349592390bc (ccl-encode-windows-1251-font): Rearrange
Kenichi Handa <handa@m17n.org>
parents: 53356
diff changeset
479 `(0
e349592390bc (ccl-encode-windows-1251-font): Rearrange
Kenichi Handa <handa@m17n.org>
parents: 53356
diff changeset
480 ((if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
e349592390bc (ccl-encode-windows-1251-font): Rearrange
Kenichi Handa <handa@m17n.org>
parents: 53356
diff changeset
481 ((r1 <<= 7)
e349592390bc (ccl-encode-windows-1251-font): Rearrange
Kenichi Handa <handa@m17n.org>
parents: 53356
diff changeset
482 (r1 += r2)))
e349592390bc (ccl-encode-windows-1251-font): Rearrange
Kenichi Handa <handa@m17n.org>
parents: 53356
diff changeset
483 (translate-character encode-windows-1251 r0 r1))))
53356
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
484
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
485 (add-to-list 'font-ccl-encoder-alist
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
486 '("microsoft-cp1251" . ccl-encode-windows-1251-font))
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
487
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
488 (set-language-info-alist
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
489 "Bulgarian" `((coding-system windows-1251)
53242
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
490 (coding-priority windows-1251)
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
491 (ctext-non-standard-encodings "microsoft-cp1251")
53356
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
492 (overriding-fontspec
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
493 (,(get 'encode-windows-1251 'translation-table)
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
494 . (nil . "microsoft-cp1251"))
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
495 (,(get 'cyrillic-koi8-r-encode-table 'translation-table)
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
496 . (nil . "koi8-r")))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
497 (nonascii-translation
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
498 . ,(get 'decode-windows-1251 'translation-table))
47906
470049d232d2 (cyrillic-alternativnyj-decode-table): Fix
Kenichi Handa <handa@m17n.org>
parents: 47702
diff changeset
499 (input-method . "bulgarian-bds")
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
500 (documentation
49795
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
501 . "Support for Bulgarian with windows-1251 character set.")
0f184780c237 ("Cyrillic-KOI8"): Fix input-method.
Dave Love <fx@gnu.org>
parents: 48832
diff changeset
502 (tutorial . "TUTORIAL.bg"))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
503 '("Cyrillic"))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
504
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
505 (set-language-info-alist
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
506 "Belarusian" `((coding-system windows-1251)
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
507 (coding-priority windows-1251)
53242
e8f42b49f71f Register "microsoft-cp1251" in ctext-non-standard-encodings-alist.
Kenichi Handa <handa@m17n.org>
parents: 52720
diff changeset
508 (ctext-non-standard-encodings "microsoft-cp1251")
53356
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
509 (overriding-fontspec
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
510 (,(get 'encode-windows-1251 'translation-table)
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
511 . (nil . "microsoft-cp1251"))
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
512 (,(get 'cyrillic-koi8-r-encode-table 'translation-table)
8e5d406a10a5 (ccl-encode-koi8-font): Make it work for
Kenichi Handa <handa@m17n.org>
parents: 53242
diff changeset
513 . (nil . "koi8-r")))
46500
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
514 (nonascii-translation
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
515 . ,(get 'decode-windows-1251 'translation-table))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
516 (input-method . "belarusian")
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
517 (documentation
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
518 . "Support for Belarusian with windows-1251 character set.
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
519 \(The name Belarusian replaced Byelorussian in the early 1990s.)"))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
520 '("Cyrillic"))
81c9cd627d93 (cyrillic-koi8-r-decode-table)
Dave Love <fx@gnu.org>
parents: 45639
diff changeset
521
33778
6d966e8b4bbe Use provide.
Dave Love <fx@gnu.org>
parents: 30495
diff changeset
522 (provide 'cyrillic)
6d966e8b4bbe Use provide.
Dave Love <fx@gnu.org>
parents: 30495
diff changeset
523
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49795
diff changeset
524 ;;; arch-tag: bda71ae0-ba41-4cb6-a6e0-1dff542313d3
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
525 ;;; cyrillic.el ends here