diff lisp/mule/cyrillic.el @ 398:74fd4e045ea6 r21-2-29

Import from CVS: tag r21-2-29
author cvs
date Mon, 13 Aug 2007 11:13:30 +0200
parents 4f79e16b1112
children 697ef44129c6
line wrap: on
line diff
--- a/lisp/mule/cyrillic.el	Mon Aug 13 11:12:06 2007 +0200
+++ b/lisp/mule/cyrillic.el	Mon Aug 13 11:13:30 2007 +0200
@@ -1,6 +1,6 @@
-;;; cyrillic.el --- Support for languages which use Cyrillic characters
+;;; cyrillic.el --- Support for Cyrillic -*- coding: iso-2022-7bit; -*-
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
 ;; Licensed to the Free Software Foundation.
 ;; Copyright (C) 1997 MORIOKA Tomohiko
 
@@ -40,24 +40,15 @@
 ;;; CYRILLIC
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-;; (define-prefix-command 'describe-cyrillic-environment-map)
-;; (define-key-after describe-language-environment-map [Cyrillic]
-;;   '("Cyrillic" . describe-cyrillic-environment-map)
-;;   t)
-
-;; (define-prefix-command 'setup-cyrillic-environment-map)
-;; (define-key-after setup-language-environment-map [Cyrillic]
-;;   '("Cyrillic" . setup-cyrillic-environment-map)
-;;   t)
-
-
 ;; ISO-8859-5 staff
 
 ;; (make-coding-system
 ;;  'cyrillic-iso-8bit 2 ?5
 ;;  "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)"
-;;  '((ascii t) (cyrillic-iso8859-5 t) nil nil
-;;    nil ascii-eol ascii-cntl nil nil nil nil))
+;;  '(ascii cyrillic-iso8859-5  nil nil
+;;    nil nil nil nil nil nil nil)
+;;  '((safe-charsets ascii cyrillic-iso8859-5)
+;;    (mime-charset . iso-8859-5)))
 
 ;; (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit)
 
@@ -72,71 +63,92 @@
    ))
 
 (set-language-info-alist
- "Cyrillic-ISO" '((setup-function . (setup-cyrillic-iso-environment
-				     . setup-cyrillic-environment-map))
-		  (charset . (cyrillic-iso8859-5))
+ "Cyrillic-ISO" '((charset cyrillic-iso8859-5)
 		  (tutorial . "TUTORIAL.ru")
-		  (coding-system . (iso-8859-5))
+		  (coding-system iso-8859-5)
+		  (coding-priority iso-8859-5)
+		  (input-method . "cyrillic-yawerty")
+		  (features cyril-util)
 		  (sample-text . "Russian (,L@caaZXY(B)	,L7T`PRabRcYbU(B!")
-		  (documentation . ("Support for Cyrillic ISO-8859-5."
-				    . describe-cyrillic-environment-map))))
+		  (documentation . "Support for Cyrillic ISO-8859-5."))
+ '("Cyrillic"))
 
 ;; KOI-8 staff
 
+(eval-and-compile
+
+(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
+   ?$B(!(B ?$B("(B ?$B(#(B ?$B($(B ?$B(&(B ?$B(%(B ?$B('(B ?$B()(B ?$B(((B ?$B(*(B ?$B(+(B 32  ?$(G#'(B ?$(G#+(B ?$(G#/(B 32
+   32  ?$(C"F(B 32  32  ?$B"#(B 32  ?$B"e(B ?$A!V(B ?$A!\(B ?$A!](B ?,L (B  32  ?,A0(B  ?,A2(B  ?,A7(B  ?,Aw(B
+   ?$(G#D(B 32  32  ?,Lq(B  32  32  32  32  32  32  32  32  32  32  32  ?$(G#E(B
+   32  32  ?$(G#G(B ?,L!(B  32  32  32  32  32  32  32  32  ?$(G#F(B 32  32  ?,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-R decoding table.")
+
+(defvar cyrillic-koi8-r-encode-table
+  (let ((table (make-vector 256 32))
+	(i 0))
+    (while (< i 256)
+      (let* ((ch (aref cyrillic-koi8-r-decode-table i))
+	     (split (split-char ch)))
+	(cond ((eq (car split) 'cyrillic-iso8859-5)
+	       (aset table (logior (nth 1 split) 128) i)
+	       )
+	      ((eq ch 32))
+	      ((eq (car split) 'ascii)
+	       (aset table ch i)
+	       )))
+      (setq i (1+ i)))
+    table)
+  "Cyrillic KOI8-R encoding table.")
+
+)
+
 (define-ccl-program ccl-decode-koi8
-  '(3
+  `(3
     ((read r0)
      (loop
-       (write-read-repeat
-	r0
-	[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
-	   128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
-	   144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
-	    32  32  32 ?,Lq(B   32  32  32  32  32  32  32  32  32  32  32  32
-	    32  32  32 ?,L!(B   32  32  32  32  32  32  32  32  32  32  32  32
-	   ?,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 ]))))
+      (write-read-repeat r0 ,cyrillic-koi8-r-decode-table))))
   "CCL program to decode KOI8.")
 
 (define-ccl-program ccl-encode-koi8
   `(1
     ((read r0)
      (loop
-       (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
-	   (write-read-repeat r0)
-	 ((read r0)
-	  (r0 -= 160)
-	  (write-read-repeat
-	   r0
-	   [ 32 179  32  32  32  32  32  32  32  32  32  32  32  32  32  32
-		225 226 247 231 228 229 246 250 233 234 235 236 237 238 239 240
-		242 243 244 245 230 232 227 254 251 253 255 249 248 252 224 241
-		193 194 215 199 196 197 214 218 201 202 203 204 205 206 207 208
-		210 211 212 213 198 200 195 222 219 221 223 217 216 220 192 209
-		32 163  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
-	  )))))
+      (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
+	  (write-read-repeat r0)
+	((read r0)
+	 (write-read-repeat r0 , cyrillic-koi8-r-encode-table))))))
   "CCL program to encode KOI8.")
 
-;(make-coding-system
-;  'cyrillic-koi8 4
-;  ;; 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.
-;  ?R "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)"
-;  (cons ccl-decode-koi8 ccl-encode-koi8))
+;; (make-coding-system
+;;  'cyrillic-koi8 4
+;;  ;; 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.
+;;  ?R "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)"
+;;  '(ccl-decode-koi8 . ccl-encode-koi8)
+;;  '((safe-charsets ascii cyrillic-iso8859-5)
+;;    (mime-charset . koi8-r)
+;;    (valid-codes (0 . 127) 163 179 (192 . 255))
+;;    (charset-origin-alist (cyrillic-iso8859-5 "KOI8-R"
+;;                                              cyrillic-encode-koi8-r-char))))
 
-;(define-coding-system-alias 'koi8-r 'cyrillic-koi8)
-;(define-coding-system-alias 'koi8 'cyrillic-koi8)
+;; (define-coding-system-alias 'koi8-r 'cyrillic-koi8)
+;; (define-coding-system-alias 'koi8 'cyrillic-koi8)
 
 (make-coding-system
  'koi8-r 'ccl
@@ -145,83 +157,102 @@
    encode ,ccl-encode-koi8
    mnemonic "KOI8"))
 
-;(define-coding-system-alias 'koi8-r 'koi8)
+;; it is not correct, but XEmacs doesn't have `ccl' category...
+(coding-system-put 'koi8-r 'category 'iso-8-1)
 
 ;; (define-ccl-program ccl-encode-koi8-font
-;;   '(0
-;;     ((r1 -= 160)
-;;      (r1 = r1
-;;          [ 32 179  32  32  32  32  32  32  32  32  32  32  32  32  32  32
-;;               225 226 247 231 228 229 246 250 233 234 235 236 237 238 239 240
-;;               242 243 244 245 230 232 227 254 251 253 255 249 248 252 224 241
-;;               193 194 215 199 196 197 214 218 201 202 203 204 205 206 207 208
-;;               210 211 212 213 198 200 195 222 219 221 223 217 216 220 192 209
-;;               32 163  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
-;;      ))
+;;   `(0
+;;     ((r1 |= 128)
+;;      (r1 = r1 ,cyrillic-koi8-r-encode-table)))
 ;;   "CCL program to encode Cyrillic chars to KOI font.")
 
 ;; (setq font-ccl-encoder-alist
 ;;       (cons (cons "koi8" ccl-encode-koi8-font) font-ccl-encoder-alist))
 
+;; (defvar cyrillic-koi8-r-nonascii-translation-table
+;;   (make-translation-table-from-vector cyrillic-koi8-r-decode-table)
+;;   "Value of `nonascii-translation-table' in Cyrillic-KOI8 language environment..")
+
 (set-language-info-alist
- "Cyrillic-KOI8" '((setup-function . (setup-cyrillic-koi8-environment
-				      . setup-cyrillic-environment-map))
-		   (charset . (cyrillic-iso8859-5))
-		   (coding-system . (koi8-r))
+ "Cyrillic-KOI8" '((charset cyrillic-iso8859-5)
+		   (coding-system koi8-r)
+		   (coding-priority koi8-r)
+		   (input-method . "cyrillic-yawerty")
+		   (features cyril-util)
 		   (tutorial . "TUTORIAL.ru")
 		   (sample-text . "Russian (,L@caaZXY(B)	,L7T`PRabRcYbU(B!")
-		   (documentation . ("Support for Cyrillic KOI-8."
-				     . describe-cyrillic-environment-map))))
+		   (documentation . "Support for Cyrillic KOI8-R."))
+ '("Cyrillic"))
 
 ;;; ALTERNATIVNYJ staff
 
+(eval-and-compile
+
+(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
+   ?,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
+   32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+   32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+   32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+   ?,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
+   ?,L!(B  ?,Lq(B   32  32  32  32  32  32  32  32  32  32  32  32  32 ?,Lp(B]
+  "Cyrillic ALTERNATIVNYJ decoding table.")
+
+(defvar cyrillic-alternativnyj-encode-table
+  (let ((table (make-vector 256 32))
+	(i 0))
+    (while (< i 256)
+      (let* ((ch (aref cyrillic-alternativnyj-decode-table i))
+	     (split (split-char ch)))
+	(if (eq (car split) 'cyrillic-iso8859-5)
+	    (aset table (logior (nth 1 split) 128) i)
+	  (if (/= ch 32)
+	      (aset table ch i))))
+      (setq i (1+ i)))
+    table)
+  "Cyrillic ALTERNATIVNYJ encoding table.")
+  
+)
+
+
 (define-ccl-program ccl-decode-alternativnyj
-  '(3
+  `(3
     ((read r0)
      (loop
-       (write-read-repeat
-	r0
-	[  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
-	       ?,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
-	       32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
-	       32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
-	       32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
-	       ?,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
-	       ?,L!(B  ?,Lq(B   32  32  32  32  32  32  32  32  32  32  32  32  32 ?,Lp(B]))))
+      (write-read-repeat r0 ,cyrillic-alternativnyj-decode-table))))
   "CCL program to decode Alternativnyj.")
 
 (define-ccl-program ccl-encode-alternativnyj
   `(1
     ((read r0)
      (loop
-       (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
-	   (write-read-repeat r0)
-	 ((read r0)
-	  (r0 -= 160)
-	  (write-read-repeat
-	   r0
-	   [ 32 240  32  32  32  32  32  32  32  32  32  32  32  32  32  32
-		128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
-		144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
-		160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
-		224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
-		255 241  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
-	  )))))
+      (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
+	  (write-read-repeat r0)
+	((read r0)
+	 (write-read-repeat r0 ,cyrillic-alternativnyj-encode-table))))))
   "CCL program to encode Alternativnyj.")
 
 ;; (make-coding-system
-;;  'alternativnyj 4
-;;  ?A "Coding-system used for Alternativnyj"
-;;  (cons ccl-decode-alternativnyj ccl-encode-alternativnyj))
+;;  'cyrillic-alternativnyj 4 ?A
+;;  "ALTERNATIVNYJ 8-bit encoding for Cyrillic"
+;;  '(ccl-decode-alternativnyj . ccl-encode-alternativnyj)
+;;  '((safe-charsets ascii cyrillic-iso8859-5)
+;;    (valid-codes (0 . 175) (224 . 241) 255)
+;;    (charset-origin-alist (cyrillic-iso8859-5 "ALTERNATIVNYJ"
+;;                                              cyrillic-encode-koi8-r-char))))
+
+
+;; (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
 
 (make-coding-system
  'alternativnyj 'ccl
@@ -230,65 +261,32 @@
    encode ,ccl-encode-alternativnyj
    mnemonic "Cy.Alt"))
 
+;; it is not correct, but XEmacs doesn't have `ccl' category...
+(coding-system-put 'alternativnyj 'category 'iso-8-1)
+
 ;; (define-ccl-program ccl-encode-alternativnyj-font
 ;;   '(0
-;;     ((r1 -= 160)
-;;      (r1 = r1
-;;       [ 32 240  32  32  32  32  32  32  32  32  32  32  32  32  32  32
-;;        128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
-;;        144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
-;;        160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
-;;        224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
-;;        255 241  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
-;;      ))
+;;     ((r1 |= 128)
+;;      (r1 = r1 ,cyrillic-alternativnyj-encode-table)))
 ;;   "CCL program to encode Cyrillic chars to Alternativnyj font.")
 
 ;; (setq font-ccl-encoder-alist
 ;;       (cons (cons "alternativnyj" ccl-encode-alternativnyj-font)
 ;;             font-ccl-encoder-alist))
 
+;; (defvar cyrillic-alternativnyj-nonascii-translation-table
+;;   (make-translation-table-from-vector cyrillic-alternativnyj-decode-table)
+;;   "Value of `nonascii-translation-table' in Cyrillic-ALT language environment.")
+
 (set-language-info-alist
- "Cyrillic-ALT" '((setup-function . (setup-cyrillic-alternativnyj-environment
-				     . setup-cyrillic-environment-map))
-		  (charset . (cyrillic-iso8859-5))
-		  (coding-system . (alternativnyj))
+ "Cyrillic-ALT" '((charset cyrillic-iso8859-5)
+		  (coding-system alternativnyj)
+		  (coding-priority alternativnyj)
+		  (input-method . "cyrillic-yawerty")
+		  (features cyril-util)
 		  (tutorial . "TUTORIAL.ru")
 		  (sample-text . "Russian (,L@caaZXY(B)	,L7T`PRabRcYbU(B!")
-		  (documentation . ("Support for Cyrillic ALTERNATIVNYJ."
-				    . describe-cyrillic-environment-map))))
-
-;;; GENERAL
-
-(defun setup-cyrillic-environment ()
-  "Setup multilingual environment for Cyrillic users."
-  (interactive)
-  (setq primary-language "Cyrillic")
-
-  (setq coding-category-iso-8-1 'iso-8859-5)
-
-  (set-coding-priority
-   '(coding-category-iso-7
-     coding-category-iso-8-1))
-
-  (setq-default buffer-file-coding-system 'iso-8859-5)
-  (set-terminal-coding-system 'iso-8859-5)
-  (set-keyboard-coding-system 'iso-8859-5)
-
-  (setq default-input-method '("Cyrillic" . "quail-yawerty"))
-  )
-
-(defun describe-cyrillic-support ()
-  "Describe how Emacs support Cyrillic."
-  (interactive)
-  (describe-language-support-internal "Cyrillic"))
-
-(set-language-info-alist
- "Cyrillic" '((setup-function . setup-cyrillic-environment)
-              (describe-function . describe-cyrillic-support)
-              (charset . (cyrillic-iso8859-5))
-	      (tutorial . "TUTORIAL.ru")
-              (coding-system . (iso-8859-5 koi8-r alternativnyj))
-              (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
-              (documentation . nil)))
+		  (documentation . "Support for Cyrillic ALTERNATIVNYJ."))
+ '("Cyrillic"))
 
 ;;; cyrillic.el ends here