2001-07-15 19:53:53 +00:00
|
|
|
|
;;; cyrillic.el --- support for Cyrillic -*- coding: iso-2022-7bit; -*-
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
|
1997-06-26 21:08:49 +00:00
|
|
|
|
;; Licensed to the Free Software Foundation.
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; Author: Kenichi Handa <handa@etl.go.jp>
|
|
|
|
|
;; Keywords: multilingual, Cyrillic, i18n
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
|
|
|
|
|
|
;; GNU Emacs is free software; you can redistribute it and/or modify
|
|
|
|
|
;; it under the terms of the GNU General Public License as published by
|
|
|
|
|
;; the Free Software Foundation; either version 2, or (at your option)
|
|
|
|
|
;; any later version.
|
|
|
|
|
|
|
|
|
|
;; GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;; GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
1997-02-23 09:20:52 +00:00
|
|
|
|
;; along with GNU Emacs; see the file COPYING. If not, write to the
|
|
|
|
|
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
|
;; Boston, MA 02111-1307, USA.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ
|
|
|
|
|
;; are converted to Unicode internally. See
|
|
|
|
|
;; <URL:http://www.ecma.ch/ecma1/STAND/ECMA-113.HTM>. For more info
|
|
|
|
|
;; on Cyrillic charsets, see
|
|
|
|
|
;; <URL:http://czyborra.com/charsets/cyrillic.html>. The KOI and
|
|
|
|
|
;; Alternativnyj coding systems should live in code-pages.el, but
|
|
|
|
|
;; they've always been preloaded and the coding system autoload
|
|
|
|
|
;; mechanism didn't get accepted, so they have to stay here and
|
|
|
|
|
;; duplicate code-pages stuff.
|
|
|
|
|
|
|
|
|
|
;; Note that 8859-5 maps directly onto the Unicode Cyrillic block,
|
|
|
|
|
;; apart from codepoints 160 (NBSP, c.f. U+0400), 173 (soft hyphen,
|
|
|
|
|
;; c.f. U+04OD) and 253 (section sign, c.f U+045D). The KOI-8 and
|
|
|
|
|
;; Alternativnyj coding systems encode both 8859-5 and Unicode.
|
|
|
|
|
;; ucs-tables.el provides unification for cyrillic-iso-8bit.
|
|
|
|
|
|
2002-09-30 06:34:40 +00:00
|
|
|
|
;; Customizing `utf-fragment-on-decoding' allows decoding characters
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; from KOI and Alternativnyj into 8859-5 where that's possible.
|
|
|
|
|
;; cyrillic-iso8859-5 characters take half as much space in the buffer
|
|
|
|
|
;; as the mule-unicode-0100-24ff equivalents, though that's probably
|
|
|
|
|
;; not normally a big deal.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
1997-08-22 01:22:17 +00:00
|
|
|
|
;; Cyrillic (general)
|
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; ISO-8859-5 stuff
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
(make-coding-system
|
1997-06-18 13:03:19 +00:00
|
|
|
|
'cyrillic-iso-8bit 2 ?5
|
2001-12-18 17:51:50 +00:00
|
|
|
|
"ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)."
|
1998-01-22 01:48:25 +00:00
|
|
|
|
'(ascii cyrillic-iso8859-5 nil nil
|
2002-11-18 00:05:52 +00:00
|
|
|
|
nil nil nil nil nil nil nil nil nil nil nil t)
|
1998-01-22 01:48:25 +00:00
|
|
|
|
'((safe-charsets ascii cyrillic-iso8859-5)
|
|
|
|
|
(mime-charset . iso-8859-5)))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1997-07-02 00:06:30 +00:00
|
|
|
|
(define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit)
|
1997-06-18 13:03:19 +00:00
|
|
|
|
|
1997-08-22 01:22:17 +00:00
|
|
|
|
(set-language-info-alist
|
1998-08-10 06:29:02 +00:00
|
|
|
|
"Cyrillic-ISO" '((charset cyrillic-iso8859-5)
|
1998-01-22 01:48:25 +00:00
|
|
|
|
(coding-system cyrillic-iso-8bit)
|
|
|
|
|
(coding-priority cyrillic-iso-8bit)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(input-method . "cyrillic-yawerty") ; fixme
|
1998-08-10 06:29:02 +00:00
|
|
|
|
(nonascii-translation . cyrillic-iso8859-5)
|
|
|
|
|
(unibyte-display . cyrillic-iso-8bit)
|
|
|
|
|
(features cyril-util)
|
1997-08-22 01:22:17 +00:00
|
|
|
|
(sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
|
1998-01-22 01:48:25 +00:00
|
|
|
|
(documentation . "Support for Cyrillic ISO-8859-5."))
|
|
|
|
|
'("Cyrillic"))
|
1997-08-22 01:22:17 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; KOI-8R stuff
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; The mule-unicode portion of this is from
|
|
|
|
|
;; http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT,
|
|
|
|
|
;; which references RFC 1489.
|
1998-08-02 01:06:57 +00:00
|
|
|
|
(defvar cyrillic-koi8-r-decode-table
|
|
|
|
|
[
|
|
|
|
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
|
|
|
|
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
|
|
|
|
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
|
|
|
|
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
|
|
|
|
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
|
|
|
|
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
|
|
|
|
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
|
|
|
|
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; 8859-5 plus Unicode
|
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
|
|
|
|
?,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
|
|
|
|
|
?,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
|
|
|
|
|
?,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
|
|
|
|
|
?,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
|
|
|
|
|
;; All Unicode:
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
]
|
1998-08-02 01:06:57 +00:00
|
|
|
|
"Cyrillic KOI8-R decoding table.")
|
|
|
|
|
|
2000-06-06 02:10:04 +00:00
|
|
|
|
(let ((table (make-translation-table-from-vector
|
|
|
|
|
cyrillic-koi8-r-decode-table)))
|
|
|
|
|
(define-translation-table 'cyrillic-koi8-r-nonascii-translation-table table)
|
|
|
|
|
(define-translation-table 'cyrillic-koi8-r-encode-table
|
|
|
|
|
(char-table-extra-slot table 0)))
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; No point in keeping it around. (It can't be let-bound, since it's
|
|
|
|
|
;; needed for macro expansion.)
|
|
|
|
|
(makunbound 'cyrillic-koi8-r-decode-table)
|
|
|
|
|
|
1997-02-26 12:27:06 +00:00
|
|
|
|
(define-ccl-program ccl-decode-koi8
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
`(4
|
2000-06-06 02:10:04 +00:00
|
|
|
|
((loop
|
|
|
|
|
(r0 = 0)
|
|
|
|
|
(read r1)
|
|
|
|
|
(if (r1 < 128)
|
|
|
|
|
(write-repeat r1)
|
|
|
|
|
((translate-character cyrillic-koi8-r-nonascii-translation-table r0 r1)
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(translate-character ucs-translation-table-for-decode r0 r1)
|
2000-06-06 02:10:04 +00:00
|
|
|
|
(write-multibyte-character r0 r1)
|
|
|
|
|
(repeat))))))
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
"CCL program to decode KOI8-R.")
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
|
|
|
|
(define-ccl-program ccl-encode-koi8
|
|
|
|
|
`(1
|
2000-06-06 02:10:04 +00:00
|
|
|
|
((loop
|
|
|
|
|
(read-multibyte-character r0 r1)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(translate-character cyrillic-koi8-r-encode-table r0 r1)
|
2002-12-13 04:45:43 +00:00
|
|
|
|
(if (r0 != ,(charset-id 'ascii))
|
|
|
|
|
(if (r0 != ,(charset-id 'eight-bit-graphic))
|
|
|
|
|
(if (r0 != ,(charset-id 'eight-bit-control))
|
|
|
|
|
(r1 = ??))))
|
2000-06-06 02:10:04 +00:00
|
|
|
|
(write-repeat r1))))
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
"CCL program to encode KOI8-R.")
|
|
|
|
|
|
|
|
|
|
(defun cyrillic-unify-encoding (table)
|
|
|
|
|
"Set up equivalent characters in the encoding TABLE.
|
2002-09-30 06:34:40 +00:00
|
|
|
|
This works whether or not the table is Unicode-based or
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
8859-5-based. (Only appropriate for Cyrillic.)"
|
|
|
|
|
(let ((table (get table 'translation-table)))
|
|
|
|
|
(dotimes (i 96)
|
|
|
|
|
(let* ((c (make-char 'cyrillic-iso8859-5 (+ i 32)))
|
|
|
|
|
(u ; equivalent Unicode char
|
|
|
|
|
(cond ((eq c ?,L (B) ?,A (B)
|
|
|
|
|
((eq c ?,L-(B) ?,A-(B)
|
|
|
|
|
((eq c ?,L}(B) ?,A'(B)
|
|
|
|
|
(t (decode-char 'ucs (+ #x400 i)))))
|
|
|
|
|
(ec (aref table c)) ; encoding of 8859-5
|
|
|
|
|
(uc (aref table u))) ; encoding of Unicode
|
|
|
|
|
(unless (memq c '(?,L (B ?,L-(B ?,L}(B)) ; 8859-5 exceptions
|
|
|
|
|
(unless uc
|
|
|
|
|
(aset table u ec))
|
|
|
|
|
(unless ec
|
|
|
|
|
(aset table c uc)))))))
|
|
|
|
|
|
|
|
|
|
(cyrillic-unify-encoding 'cyrillic-koi8-r-encode-table)
|
|
|
|
|
|
1997-02-26 12:27:06 +00:00
|
|
|
|
(make-coding-system
|
1997-06-10 01:08:21 +00:00
|
|
|
|
'cyrillic-koi8 4
|
1997-06-02 04:56:33 +00:00
|
|
|
|
;; We used to use ?K. It is true that ?K is more strictly correct,
|
|
|
|
|
;; but it is also used for Korean.
|
|
|
|
|
;; So people who use koi8 for languages other than Russian
|
|
|
|
|
;; will have to forgive us.
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
?R "KOI8-R 8-bit encoding for Cyrillic (MIME: KOI8-R)."
|
1998-04-20 02:14:20 +00:00
|
|
|
|
'(ccl-decode-koi8 . ccl-encode-koi8)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
`((safe-chars . cyrillic-koi8-r-encode-table)
|
1998-08-02 01:06:57 +00:00
|
|
|
|
(mime-charset . koi8-r)
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(valid-codes (0 . 255))
|
|
|
|
|
(dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
1997-07-02 00:06:30 +00:00
|
|
|
|
(define-coding-system-alias 'koi8-r 'cyrillic-koi8)
|
|
|
|
|
(define-coding-system-alias 'koi8 'cyrillic-koi8)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(define-coding-system-alias 'cp878 'cyrillic-koi8)
|
|
|
|
|
|
|
|
|
|
;; Allow displaying some of KOI & al with an 8859-5-encoded font. We
|
|
|
|
|
;; won't bother about the exceptions when encoding the font, since
|
|
|
|
|
;; NBSP will fall through below and work anyhow, and we'll have
|
|
|
|
|
;; avoided setting the fontset for the other two to 8859-5 -- they're
|
|
|
|
|
;; not in KOI and Alternativnyj anyhow.
|
|
|
|
|
(define-ccl-program ccl-encode-8859-5-font
|
|
|
|
|
`(0
|
|
|
|
|
((if (r0 == ,(charset-id 'cyrillic-iso8859-5))
|
|
|
|
|
(r1 += 128)
|
|
|
|
|
(if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
|
|
|
|
|
(r1 = (r2 + 128))))))
|
|
|
|
|
"Encode ISO 8859-5 and Cyrillic Unicode chars to 8859-5 font.")
|
|
|
|
|
|
|
|
|
|
(add-to-list 'font-ccl-encoder-alist '("iso8859-5" . ccl-encode-8859-5-font))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; The table is set up later to encode both Unicode and 8859-5.
|
1997-02-26 12:27:06 +00:00
|
|
|
|
(define-ccl-program ccl-encode-koi8-font
|
1998-08-02 01:06:57 +00:00
|
|
|
|
`(0
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(translate-character cyrillic-koi8-r-encode-table r0 r1))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
"CCL program to encode Cyrillic chars to KOI font.")
|
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(add-to-list 'font-ccl-encoder-alist '("koi8" . ccl-encode-koi8-font))
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
1997-08-22 01:22:17 +00:00
|
|
|
|
(set-language-info-alist
|
1998-08-10 06:29:02 +00:00
|
|
|
|
"Cyrillic-KOI8" `((charset cyrillic-iso8859-5)
|
|
|
|
|
(nonascii-translation
|
2000-06-06 02:10:04 +00:00
|
|
|
|
. ,(get 'cyrillic-koi8-r-nonascii-translation-table
|
|
|
|
|
'translation-table))
|
1998-01-22 01:48:25 +00:00
|
|
|
|
(coding-system cyrillic-koi8)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(coding-priority cyrillic-koi8 cyrillic-iso-8bit)
|
1999-07-13 19:03:04 +00:00
|
|
|
|
(input-method . "cyrillic-jcuken")
|
1998-08-10 06:29:02 +00:00
|
|
|
|
(features cyril-util)
|
|
|
|
|
(unibyte-display . cyrillic-koi8)
|
1997-08-22 01:22:17 +00:00
|
|
|
|
(sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
|
1998-08-02 01:06:57 +00:00
|
|
|
|
(documentation . "Support for Cyrillic KOI8-R."))
|
1998-01-22 01:48:25 +00:00
|
|
|
|
'("Cyrillic"))
|
1997-08-22 01:22:17 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
|
|
|
|
|
(defvar cyrillic-koi8-u-decode-table
|
|
|
|
|
[
|
|
|
|
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
|
|
|
|
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
|
|
|
|
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
|
|
|
|
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
|
|
|
|
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
|
|
|
|
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
|
|
|
|
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
|
|
|
|
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
|
|
|
|
;; All Unicode:
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; 8859-5 plus Unicode:
|
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
|
|
|
|
?,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
|
|
|
|
|
?,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
|
|
|
|
|
?,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
|
|
|
|
|
?,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
|
|
|
|
|
]
|
|
|
|
|
"Cyrillic KOI8-U decoding table.")
|
|
|
|
|
|
|
|
|
|
(let ((table (make-translation-table-from-vector
|
|
|
|
|
cyrillic-koi8-u-decode-table)))
|
|
|
|
|
(define-translation-table 'cyrillic-koi8-u-nonascii-translation-table table)
|
|
|
|
|
(define-translation-table 'cyrillic-koi8-u-encode-table
|
|
|
|
|
(char-table-extra-slot table 0)))
|
|
|
|
|
|
|
|
|
|
(makunbound 'cyrillic-koi8-u-decode-table)
|
|
|
|
|
|
|
|
|
|
(define-ccl-program ccl-decode-koi8-u
|
|
|
|
|
`(4
|
|
|
|
|
((loop
|
|
|
|
|
(r0 = 0)
|
|
|
|
|
(read r1)
|
|
|
|
|
(if (r1 < 128)
|
|
|
|
|
(write-repeat r1)
|
|
|
|
|
((translate-character cyrillic-koi8-u-nonascii-translation-table r0 r1)
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(translate-character ucs-translation-table-for-decode r0 r1)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(write-multibyte-character r0 r1)
|
|
|
|
|
(repeat))))))
|
|
|
|
|
"CCL program to decode KOI8-U.")
|
|
|
|
|
|
|
|
|
|
(define-ccl-program ccl-encode-koi8-u
|
|
|
|
|
`(1
|
|
|
|
|
((loop
|
|
|
|
|
(read-multibyte-character r0 r1)
|
|
|
|
|
(translate-character cyrillic-koi8-u-encode-table r0 r1)
|
2002-12-13 04:45:43 +00:00
|
|
|
|
(if (r0 != ,(charset-id 'ascii))
|
|
|
|
|
(if (r0 != ,(charset-id 'eight-bit-graphic))
|
|
|
|
|
(if (r0 != ,(charset-id 'eight-bit-control))
|
|
|
|
|
(r1 = ??))))
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(write-repeat r1))))
|
|
|
|
|
"CCL program to encode KOI8-U.")
|
|
|
|
|
|
|
|
|
|
(cyrillic-unify-encoding 'cyrillic-koi8-u-encode-table)
|
|
|
|
|
|
|
|
|
|
(make-coding-system
|
|
|
|
|
'koi8-u 4
|
|
|
|
|
?U "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)"
|
|
|
|
|
'(ccl-decode-koi8-u . ccl-encode-koi8-u)
|
|
|
|
|
`((safe-chars . cyrillic-koi8-u-encode-table)
|
|
|
|
|
(mime-charset . koi8-u)
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(valid-codes (0 . 255))
|
|
|
|
|
(dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
|
|
|
|
|
(define-ccl-program ccl-encode-koi8-u-font
|
|
|
|
|
`(0
|
|
|
|
|
(translate-character cyrillic-koi8-u-encode-table r0 r1))
|
|
|
|
|
"CCL program to encode Cyrillic chars to KOI-U font.")
|
|
|
|
|
|
|
|
|
|
(add-to-list 'font-ccl-encoder-alist '("koi8-u" . ccl-encode-koi8-u-font))
|
|
|
|
|
|
|
|
|
|
(set-language-info-alist
|
|
|
|
|
"Ukrainian" `((coding-system koi8-u)
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(coding-priority koi8-u)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(nonascii-translation
|
2002-09-11 21:07:00 +00:00
|
|
|
|
. ,(get 'cyrillic-koi8-u-nonascii-translation-table
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
'translation-table))
|
|
|
|
|
(input-method . "ukrainian-computer")
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(features code-pages)
|
|
|
|
|
(documentation
|
|
|
|
|
. "Support for Ukrainian with KOI8-U character set."))
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
'("Cyrillic"))
|
|
|
|
|
|
|
|
|
|
;;; ALTERNATIVNYJ stuff
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
2002-09-11 21:07:00 +00:00
|
|
|
|
;; Fixme: It's unclear what's the correct table. I've found
|
|
|
|
|
;; statements both that it's the same as cp866 and somewhat different,
|
2002-10-17 07:30:45 +00:00
|
|
|
|
;; but nothing that looks really definitive.
|
1998-08-02 01:06:57 +00:00
|
|
|
|
(defvar cyrillic-alternativnyj-decode-table
|
|
|
|
|
[
|
|
|
|
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
|
|
|
|
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
|
|
|
|
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
|
|
|
|
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
|
|
|
|
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
|
|
|
|
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
|
|
|
|
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
|
|
|
|
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
|
|
|
|
;; ?$,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
|
2002-10-17 07:30:45 +00:00
|
|
|
|
;; ?$,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 ;
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
;; 8859+Unicode
|
1998-08-02 01:06:57 +00:00
|
|
|
|
?,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
|
|
|
|
|
?,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
|
|
|
|
|
?,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
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
|
|
|
|
?$,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
|
1998-08-02 01:06:57 +00:00
|
|
|
|
?,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
|
2002-10-17 07:30:45 +00:00
|
|
|
|
;; Taken from http://www.cyrillic.com/ref/cyrillic/koi-8alt.html
|
|
|
|
|
;; with guesses for the Unicodes of the glyphs in the absence of a
|
|
|
|
|
;; table.
|
|
|
|
|
?,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]
|
1998-08-02 01:06:57 +00:00
|
|
|
|
"Cyrillic ALTERNATIVNYJ decoding table.")
|
|
|
|
|
|
2000-06-06 02:10:04 +00:00
|
|
|
|
(let ((table (make-translation-table-from-vector
|
|
|
|
|
cyrillic-alternativnyj-decode-table)))
|
|
|
|
|
(define-translation-table 'cyrillic-alternativnyj-nonascii-translation-table
|
1998-08-02 01:06:57 +00:00
|
|
|
|
table)
|
2000-06-06 02:10:04 +00:00
|
|
|
|
(define-translation-table 'cyrillic-alternativnyj-encode-table
|
|
|
|
|
(char-table-extra-slot table 0)))
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(makunbound 'cyrillic-alternativnyj-decode-table)
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
1997-02-26 12:27:06 +00:00
|
|
|
|
(define-ccl-program ccl-decode-alternativnyj
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
`(4
|
2000-06-06 02:10:04 +00:00
|
|
|
|
((loop
|
|
|
|
|
(r0 = 0)
|
|
|
|
|
(read r1)
|
|
|
|
|
(if (r1 < 128)
|
|
|
|
|
(write-repeat r1)
|
|
|
|
|
((translate-character cyrillic-alternativnyj-nonascii-translation-table
|
|
|
|
|
r0 r1)
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(translate-character ucs-translation-table-for-decode r0 r1)
|
2000-06-06 02:10:04 +00:00
|
|
|
|
(write-multibyte-character r0 r1)
|
|
|
|
|
(repeat))))))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
"CCL program to decode Alternativnyj.")
|
|
|
|
|
|
|
|
|
|
(define-ccl-program ccl-encode-alternativnyj
|
|
|
|
|
`(1
|
2000-06-06 02:10:04 +00:00
|
|
|
|
((loop
|
|
|
|
|
(read-multibyte-character r0 r1)
|
2000-07-27 06:22:42 +00:00
|
|
|
|
(translate-character cyrillic-alternativnyj-encode-table r0 r1)
|
2002-12-13 04:45:43 +00:00
|
|
|
|
(if (r0 != ,(charset-id 'ascii))
|
|
|
|
|
(if (r0 != ,(charset-id 'eight-bit-graphic))
|
|
|
|
|
(if (r0 != ,(charset-id 'eight-bit-control))
|
|
|
|
|
(r1 = ??))))
|
2000-06-06 02:10:04 +00:00
|
|
|
|
(write-repeat r1))))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
"CCL program to encode Alternativnyj.")
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
|
|
|
|
|
(cyrillic-unify-encoding 'cyrillic-alternativnyj-encode-table)
|
|
|
|
|
|
1997-02-26 12:27:06 +00:00
|
|
|
|
(make-coding-system
|
1997-06-18 13:03:19 +00:00
|
|
|
|
'cyrillic-alternativnyj 4 ?A
|
2002-10-17 07:30:45 +00:00
|
|
|
|
"ALTERNATIVNYJ 8-bit encoding for Cyrillic."
|
1998-04-20 02:14:20 +00:00
|
|
|
|
'(ccl-decode-alternativnyj . ccl-encode-alternativnyj)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
`((safe-chars . cyrillic-alternativnyj-encode-table)
|
|
|
|
|
(valid-codes (0 . 255))
|
2002-09-30 06:34:40 +00:00
|
|
|
|
(dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
1997-07-02 00:06:30 +00:00
|
|
|
|
(define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
|
1997-06-18 13:03:19 +00:00
|
|
|
|
|
1997-02-26 12:27:06 +00:00
|
|
|
|
(define-ccl-program ccl-encode-alternativnyj-font
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
`(0
|
|
|
|
|
(translate-character cyrillic-alternativnyj-encode-table r0 r1))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
"CCL program to encode Cyrillic chars to Alternativnyj font.")
|
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(add-to-list 'font-ccl-encoder-alist
|
|
|
|
|
'("alternativnyj" . ccl-encode-alternativnyj-font))
|
1997-02-26 12:27:06 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
(set-language-info-alist
|
1998-08-10 06:29:02 +00:00
|
|
|
|
"Cyrillic-ALT" `((charset cyrillic-iso8859-5)
|
|
|
|
|
(nonascii-translation
|
2000-06-06 02:10:04 +00:00
|
|
|
|
. ,(get 'cyrillic-alternativnyj-nonascii-translation-table
|
|
|
|
|
'translation-table))
|
1998-01-22 01:48:25 +00:00
|
|
|
|
(coding-system cyrillic-alternativnyj)
|
|
|
|
|
(coding-priority cyrillic-alternativnyj)
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(input-method . "russian-typewriter")
|
1998-08-10 06:29:02 +00:00
|
|
|
|
(features cyril-util)
|
|
|
|
|
(unibyte-display . cyrillic-alternativnyj)
|
1997-08-22 01:22:17 +00:00
|
|
|
|
(sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
|
1998-01-22 01:48:25 +00:00
|
|
|
|
(documentation . "Support for Cyrillic ALTERNATIVNYJ."))
|
|
|
|
|
'("Cyrillic"))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(set-language-info-alist
|
|
|
|
|
"Windows-1251" `((coding-system windows-1251)
|
|
|
|
|
(coding-priority windows-1251)
|
|
|
|
|
(nonascii-translation
|
|
|
|
|
. ,(get 'decode-windows-1252 'translation-table))
|
|
|
|
|
(input-method . "russian-typewriter") ; fixme?
|
|
|
|
|
(features code-pages)
|
|
|
|
|
(documentation . "Support for windows-1251 character set."))
|
|
|
|
|
'("Cyrillic"))
|
|
|
|
|
|
|
|
|
|
(set-language-info-alist
|
|
|
|
|
"Tajik" `((coding-system cyrillic-koi8-t)
|
|
|
|
|
(coding-priority cyrillic-koi8-t)
|
|
|
|
|
(nonascii-translation
|
|
|
|
|
. ,(get 'decode-koi8-t 'translation-table))
|
|
|
|
|
(input-method . "russian-typewriter") ; fixme?
|
|
|
|
|
(features code-pages)
|
|
|
|
|
(documentation . "Support for Tajik using KOI8-T."))
|
|
|
|
|
'("Cyrillic"))
|
|
|
|
|
|
|
|
|
|
(set-language-info-alist
|
|
|
|
|
"Bulgarian" `((coding-system windows-1251)
|
|
|
|
|
(coding-priority windows-1251)
|
|
|
|
|
(nonascii-translation
|
|
|
|
|
. ,(get 'decode-windows-1251 'translation-table))
|
2002-10-17 07:30:45 +00:00
|
|
|
|
(input-method . "bulgarian-bds")
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
(features code-pages)
|
|
|
|
|
(documentation
|
2002-11-05 14:39:32 +00:00
|
|
|
|
. "Support for Bulgarian with windows-1251 character set."))
|
(cyrillic-koi8-r-decode-table)
(cyrillic-alternativnyj-decode-table): Fill out with mule-unicode.
(cyrillic-koi8-r-decode-table): Make unbound after use.
(ccl-decode-koi8, ccl-decode-alternativnyj): Change expansion
factor. Use utf-8-translation-table-for-decode.
(ccl-encode-koi8, ccl-encode-koi8): Don't check r0.
(cyrillic-unify-encoding): New function.
(cyrillic-koi8): Modify safe-chars, valid-codes. Remove
charset-origin-alist.
(Cp878, cp866): New alias.
(ccl-encode-8859-5-font): New.
(font-ccl-encoder-alist): Add ccl-encode-8859-5-font.
(ccl-encode-koi8-font, ccl-encode-alternativnyj-font): Remove
redundant parens.
("Cyrillic-KOI8"): Add cyrillic-iso-8bit to coding-priority.
(cyrillic-koi8-u-decode-table, ccl-decode-koi8-u)
(ccl-encode-koi8-u, koi8-u, ccl-encode-koi8-u-font, "Ukrainian"):
New.
(cyrillic-alternativnyj): Modify safe-chars, add mime-charset.
("Cyrillic-ALT"): Change input method.
("Windows-1251", "Tajik", "Bulgarian", "Belarusian"): New.
2002-07-17 18:39:16 +00:00
|
|
|
|
'("Cyrillic"))
|
|
|
|
|
|
|
|
|
|
(set-language-info-alist
|
|
|
|
|
"Belarusian" `((coding-system windows-1251)
|
|
|
|
|
(coding-priority windows-1251)
|
|
|
|
|
(nonascii-translation
|
|
|
|
|
. ,(get 'decode-windows-1251 'translation-table))
|
|
|
|
|
(input-method . "belarusian")
|
|
|
|
|
(features code-pages)
|
|
|
|
|
(documentation
|
|
|
|
|
. "Support for Belarusian with windows-1251 character set.
|
|
|
|
|
\(The name Belarusian replaced Byelorussian in the early 1990s.)"))
|
|
|
|
|
'("Cyrillic"))
|
|
|
|
|
|
2000-11-22 19:28:28 +00:00
|
|
|
|
(provide 'cyrillic)
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
;;; cyrillic.el ends here
|