annotate lisp/mule/cyrillic.el @ 3767:6b2ef948e140

[xemacs-hg @ 2006-12-29 18:09:38 by aidan] etc/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * unicode/unicode-consortium/8859-7.TXT: Update the mapping to the 2003 version of ISO 8859-7. lisp/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * mule/cyrillic.el: * mule/cyrillic.el (iso-8859-5): * mule/cyrillic.el (cyrillic-koi8-r-encode-table): Add syntax, case support for Cyrillic; make some parentheses more Lispy. * mule/european.el: Content moved to latin.el, file deleted. * mule/general-late.el: If Unicode tables are to be loaded at dump time, do it here, not in loadup.el. * mule/greek.el: Add syntax, case support for Greek. * mule/latin.el: Move the content of european.el here. Change the case table mappings to use hexadecimal codes, to make cross reference to the standards easier. In all cases, take character syntax from similar characters in Latin-1 , rather than deciding separately what syntax they should take. Add (incomplete) support for case with Turkish. Remove description of the character sets used from the language environments' doc strings, since now that we create variant language environments on the fly, such descriptions will often be inaccurate. Set the native-coding-system language info property while setting the other coding-system properties of the language. * mule/misc-lang.el (ipa): Remove the language environment. The International Phonetic _Alphabet_ is not a language, it's inane to have a corresponding language environment in XEmacs. * mule/mule-cmds.el (create-variant-language-environment): Also modify the coding-priority when creating a new language environment; document that. * mule/mule-cmds.el (get-language-environment-from-locale): Recognise that the 'native-coding-system language-info property can be a list, interpret it correctly when it is one. 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * coding.el (coding-system-category): Use the new 'unicode-type property for finding what sort of Unicode coding system subtype a coding system is, instead of the overshadowed 'type property. * dumped-lisp.el (preloaded-file-list): mule/european.el has been removed. * loadup.el (really-early-error-handler): Unicode tables loaded at dump time are now in mule/general-late.el. * simple.el (count-lines): Add some backslashes to to parentheses in docstrings to help fontification along. * simple.el (what-cursor-position): Wrap a line to fit in 80 characters. * unicode.el: Use the 'unicode-type property, not 'type, for setting the Unicode coding-system subtype. src/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * file-coding.c: Update the make-coding-system docstring to reflect unicode-type * general-slots.h: New symbol, unicode-type, since 'type was being overridden when accessing a coding system's Unicode subtype. * intl-win32.c: Backslash a few parentheses, to help fontification along. * intl-win32.c (complex_vars_of_intl_win32): Use the 'unicode-type symbol, not 'type, when creating the Microsoft Unicode coding system. * unicode.c (unicode_putprop): * unicode.c (unicode_getprop): * unicode.c (unicode_print): Using 'type as the property name when working out what Unicode subtype a given coding system is was broken, since there's a general coding system property called 'type. Change the former to use 'unicode-type instead.
author aidan
date Fri, 29 Dec 2006 18:09:51 +0000
parents f37a5923ceba
children fbf54025c136
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 ;;; cyrillic.el --- Support for Cyrillic -*- coding: iso-2022-7bit; -*-
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 ;; Copyright (C) 1995,1999 Electrotechnical Laboratory, JAPAN.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 ;; Licensed to the Free Software Foundation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 ;; Copyright (C) 1997 MORIOKA Tomohiko
788
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
6 ;; Copyright (C) 2001, 2002 Ben Wing.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 ;; Keywords: multilingual, Cyrillic
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 ;; This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ;; XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 ;; under the terms of the GNU General Public License as published by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 ;; any later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 ;; XEmacs is distributed in the hope that it will be useful, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 ;; General Public License for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 ;; along with XEmacs; see the file COPYING. If not, write to the Free
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 ;; 02111-1307, USA.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 ;;; Commentary:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
29 ;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ are
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
30 ;; converted to ISO8859-5 internally.
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
31
3767
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
32 ;; [Windows-1251 support deleted because XEmacs has automatic support.]
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
33
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
34 ;; #### We only have automatic support on Windows; that needs to be put
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
35 ;; back. Also, the Russian Wikipedia articles on KOI-8 list several other
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
36 ;; related encodings--KOI8-U (Ukrainian), KOI8-RU (simultaneous support for
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
37 ;; Russian, Belorussian, and Ukrainian), KOI8-C (for languages of the
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
38 ;; Caucasus), KOI8-O (Old Church Slavonic)--and it would be nice to have
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
39 ;; them. Beyond that, we're currently trashing lots of code points with
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
40 ;; KOI-8 R; it would be nice to leverage the Unicode support to not do that.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 ;;; Code:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43
3767
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
44 ;; Case table:
3749
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
45 (loop
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
46 for (upper lower)
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
47 in '((#xcf #xef) ; YA
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
48 (#xce #xee) ; YU
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
49 (#xcd #xed) ; E
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
50 (#xcc #xec) ; SOFT SIGN
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
51 (#xcb #xeb) ; YERU
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
52 (#xca #xea) ; HARD SIGN
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
53 (#xc9 #xe9) ; SHCHA
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
54 (#xc8 #xe8) ; SHA
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
55 (#xc7 #xe7) ; CHE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
56 (#xc6 #xe6) ; TSE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
57 (#xc5 #xe5) ; HA
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
58 (#xc4 #xe4) ; EF
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
59 (#xc3 #xe3) ; U
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
60 (#xc2 #xe2) ; TE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
61 (#xc1 #xe1) ; ES
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
62 (#xc0 #xe0) ; ER
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
63 (#xbf #xdf) ; PE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
64 (#xbe #xde) ; O
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
65 (#xbd #xdd) ; EN
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
66 (#xbc #xdc) ; EM
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
67 (#xbb #xdb) ; EL
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
68 (#xba #xda) ; KA
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
69 (#xb9 #xd9) ; SHORT I
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
70 (#xb8 #xd8) ; I
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
71 (#xb7 #xd7) ; ZE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
72 (#xb6 #xd6) ; ZHE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
73 (#xb5 #xd5) ; IE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
74 (#xb4 #xd4) ; DE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
75 (#xb3 #xd3) ; GHE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
76 (#xb2 #xd2) ; VE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
77 (#xb1 #xd1) ; BE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
78 (#xb0 #xd0) ; A
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
79 (#xaf #xff) ; DZHE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
80 (#xae #xfe) ; SHORT U
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
81 (#xac #xfc) ; KJE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
82 (#xab #xfb) ; TSHE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
83 (#xaa #xfa) ; NJE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
84 (#xa9 #xf9) ; LJE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
85 (#xa8 #xf8) ; JE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
86 (#xa7 #xf7) ; YI
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
87 (#xa6 #xf6) ; BYELORUSSIAN-UKRAINIAN I
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
88 (#xa5 #xf5) ; DZE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
89 (#xa4 #xf4) ; UKRAINIAN IE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
90 (#xa3 #xf3) ; GJE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
91 (#xa2 #xf2) ; DJE
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
92 (#xa1 #xf1)) ; IO
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
93 with case-table = (standard-case-table)
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
94 do
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
95 (put-case-table-pair (make-char 'cyrillic-iso8859-5 upper)
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
96 (make-char 'cyrillic-iso8859-5 lower)
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
97 case-table))
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
98
f37a5923ceba [xemacs-hg @ 2006-12-17 13:41:33 by aidan]
aidan
parents: 3707
diff changeset
99 ;; The default character syntax is now word. Pay attention to the
3767
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
100 ;; exceptions in ISO-8859-5, copying them from ISO-8859-1.
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
101 (loop
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
102 for (latin-1 cyrillic)
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
103 in '((#xAD #xAD) ;; SOFT HYPHEN
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
104 (#xA7 #xFD) ;; SECTION SIGN
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
105 (#xA0 #xA0)) ;; NO BREAK SPACE
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
106 with syntax-table = (standard-syntax-table)
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
107 do (modify-syntax-entry
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
108 (make-char 'cyrillic-iso8859-5 cyrillic)
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
109 (string (char-syntax (make-char 'latin-iso8859-1 latin-1)))
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
110 syntax-table))
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
111
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
112 ;; Take NUMERO SIGN's syntax from #.
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
113 (modify-syntax-entry (make-char 'cyrillic-iso8859-5 #xF0)
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
114 (string (char-syntax ?\# (standard-syntax-table)))
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
115 (standard-syntax-table))
778
2923009caf47 [xemacs-hg @ 2002-03-16 10:38:59 by ben]
ben
parents: 771
diff changeset
116
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 (make-coding-system
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 'iso-8859-5 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
119 "ISO-8859-5 (Cyrillic)"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 '(charset-g0 ascii
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 charset-g1 cyrillic-iso8859-5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 charset-g2 t
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 charset-g3 t
3767
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
124 mnemonic "ISO8/Cyr"))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 (set-language-info-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 "Cyrillic-ISO" '((charset cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 (tutorial . "TUTORIAL.ru")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 (coding-system iso-8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 (coding-priority iso-8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 (input-method . "cyrillic-yawerty")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 (features cyril-util)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 (documentation . "Support for Cyrillic ISO-8859-5."))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135 '("Cyrillic"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
137 ;; KOI-8
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 (eval-and-compile
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 (defvar cyrillic-koi8-r-decode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 [
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 ?$B(!(B ?$B("(B ?$B(#(B ?$B($(B ?$B(&(B ?$B(%(B ?$B('(B ?$B()(B ?$B(((B ?$B(*(B ?$B(+(B 32 ?$(G#'(B ?$(G#+(B ?$(G#/(B 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 32 ?$(C"F(B 32 32 ?$B"#(B 32 ?$B"e(B ?$A!V(B ?$A!\(B ?$A!](B ?,L (B 32 ?,A0(B ?,A2(B ?,A7(B ?,Aw(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 ?$(G#D(B 32 32 ?,Lq(B 32 32 32 32 32 32 32 32 32 32 32 ?$(G#E(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 32 32 ?$(G#G(B ?,L!(B 32 32 32 32 32 32 32 32 ?$(G#F(B 32 32 ?,A)(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 ?,Ln(B ?,LP(B ?,LQ(B ?,Lf(B ?,LT(B ?,LU(B ?,Ld(B ?,LS(B ?,Le(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 ?,L_(B ?,Lo(B ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,LV(B ?,LR(B ?,Ll(B ?,Lk(B ?,LW(B ?,Lh(B ?,Lm(B ?,Li(B ?,Lg(B ?,Lj(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 ?,LN(B ?,L0(B ?,L1(B ?,LF(B ?,L4(B ?,L5(B ?,LD(B ?,L3(B ?,LE(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 ?,L?(B ?,LO(B ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,L6(B ?,L2(B ?,LL(B ?,LK(B ?,L7(B ?,LH(B ?,LM(B ?,LI(B ?,LG(B ?,LJ(B ]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 "Cyrillic KOI8-R decoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 (defvar cyrillic-koi8-r-encode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 (let ((table (make-vector 256 32))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 (i 0))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 (while (< i 256)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 (let* ((ch (aref cyrillic-koi8-r-decode-table i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 (split (split-char ch)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 (cond ((eq (car split) 'cyrillic-iso8859-5)
3767
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
168 (aset table (logior (nth 1 split) 128) i))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 ((eq ch 32))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 ((eq (car split) 'ascii)
3767
6b2ef948e140 [xemacs-hg @ 2006-12-29 18:09:38 by aidan]
aidan
parents: 3749
diff changeset
171 (aset table ch i))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 (setq i (1+ i)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 table)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 "Cyrillic KOI8-R encoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 (define-ccl-program ccl-decode-koi8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 `(3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 (write-read-repeat r0 ,cyrillic-koi8-r-decode-table))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 "CCL program to decode KOI8.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185 (define-ccl-program ccl-encode-koi8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 `(1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190 (write-read-repeat r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192 (write-read-repeat r0 , cyrillic-koi8-r-encode-table))))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193 "CCL program to encode KOI8.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 ;; (define-coding-system-alias 'koi8-r 'cyrillic-koi8)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 ;; (define-coding-system-alias 'koi8 'cyrillic-koi8)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198 (make-coding-system
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 'koi8-r 'ccl
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
200 "KOI8-R (Cyrillic)"
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
201 '(decode ccl-decode-koi8
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
202 encode ccl-encode-koi8
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 mnemonic "KOI8"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
205 ;; `iso-8-1' is not correct, but XEmacs doesn't have a `ccl' category
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206 (coding-system-put 'koi8-r 'category 'iso-8-1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208 ;; (define-ccl-program ccl-encode-koi8-font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209 ;; `(0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210 ;; ((r1 |= 128)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 ;; (r1 = r1 ,cyrillic-koi8-r-encode-table)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212 ;; "CCL program to encode Cyrillic chars to KOI font.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 ;; (setq font-ccl-encoder-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 ;; (cons (cons "koi8" ccl-encode-koi8-font) font-ccl-encoder-alist))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216
788
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
217 (defvar cyrillic-koi8-r-to-external-code-table
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
218 (let ((table (make-char-table 'generic))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
219 (i 0)
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
220 (len (length cyrillic-koi8-r-decode-table)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
221 (while (< i len)
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
222 (let ((ch (aref cyrillic-koi8-r-decode-table i)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
223 (if (characterp ch)
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
224 (put-char-table ch i table)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
225 (incf i)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
226 "Table to convert from characters to their Koi8-R code.")
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228 (set-language-info-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229 "Cyrillic-KOI8" '((charset cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 (coding-system koi8-r)
3707
f6f6fc9eb269 [xemacs-hg @ 2006-11-28 21:20:22 by aidan]
aidan
parents: 788
diff changeset
231 (native-coding-system koi8-r)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
232 (coding-priority koi8-r)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
233 (input-method . "cyrillic-yawerty")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
234 (features cyril-util)
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
235 (locale "ru")
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
236 (mswindows-locale . "RUSSIAN")
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
237 (tutorial . "TUTORIAL.ru")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
238 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239 (documentation . "Support for Cyrillic KOI8-R."))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 '("Cyrillic"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
242 ;;; WINDOWS-1251 deleted; we support it automatically in XEmacs
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
243
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
244 ;;; ALTERNATIVNYJ
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
245
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246 (eval-and-compile
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
248 (defvar cyrillic-alternativnyj-decode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
249 [
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
250 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
251 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
253 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
254 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
255 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
256 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
257 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
258 ?,L0(B ?,L1(B ?,L2(B ?,L3(B ?,L4(B ?,L5(B ?,L6(B ?,L7(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B ?,L?(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
259 ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,LD(B ?,LE(B ?,LF(B ?,LG(B ?,LH(B ?,LI(B ?,LJ(B ?,LK(B ?,LL(B ?,LM(B ?,LN(B ?,LO(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
260 ?,LP(B ?,LQ(B ?,LR(B ?,LS(B ?,LT(B ?,LU(B ?,LV(B ?,LW(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B ?,L_(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
261 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
264 ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,Ld(B ?,Le(B ?,Lf(B ?,Lg(B ?,Lh(B ?,Li(B ?,Lj(B ?,Lk(B ?,Ll(B ?,Lm(B ?,Ln(B ?,Lo(B
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
265 ?,L!(B ?,Lq(B 32 32 32 32 32 32 32 32 32 32 32 32 32 ?,Lp(B]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
266 "Cyrillic ALTERNATIVNYJ decoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
267
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
268 (defvar cyrillic-alternativnyj-encode-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
269 (let ((table (make-vector 256 32))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270 (i 0))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
271 (while (< i 256)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272 (let* ((ch (aref cyrillic-alternativnyj-decode-table i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 (split (split-char ch)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
274 (if (eq (car split) 'cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
275 (aset table (logior (nth 1 split) 128) i)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
276 (if (/= ch 32)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
277 (aset table ch i))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
278 (setq i (1+ i)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
279 table)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
280 "Cyrillic ALTERNATIVNYJ encoding table.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
281
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
282 )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
283
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
284
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
285 (define-ccl-program ccl-decode-alternativnyj
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
286 `(3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
287 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
288 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
289 (write-read-repeat r0 ,cyrillic-alternativnyj-decode-table))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
290 "CCL program to decode Alternativnyj.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
291
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
292 (define-ccl-program ccl-encode-alternativnyj
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
293 `(1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
294 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
295 (loop
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
296 (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
297 (write-read-repeat r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
298 ((read r0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
299 (write-read-repeat r0 ,cyrillic-alternativnyj-encode-table))))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
300 "CCL program to encode Alternativnyj.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
301
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
302 ;; (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
303
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
304 (make-coding-system
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
305 'alternativnyj 'ccl
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 444
diff changeset
306 "Alternativnyj (Cyrillic)"
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
307 '(decode ccl-decode-alternativnyj
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
308 encode ccl-encode-alternativnyj
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
309 mnemonic "Cy.Alt"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
310
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
311 ;; `iso-8-1' is not correct, but XEmacs doesn't have `ccl' category
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
312 (coding-system-put 'alternativnyj 'category 'iso-8-1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
313
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
314 ;; (define-ccl-program ccl-encode-alternativnyj-font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
315 ;; '(0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
316 ;; ((r1 |= 128)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
317 ;; (r1 = r1 ,cyrillic-alternativnyj-encode-table)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
318 ;; "CCL program to encode Cyrillic chars to Alternativnyj font.")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
319
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
320 ;; (setq font-ccl-encoder-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
321 ;; (cons (cons "alternativnyj" ccl-encode-alternativnyj-font)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
322 ;; font-ccl-encoder-alist))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
323
788
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
324 (defvar cyrillic-alternativnyj-to-external-code-table
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
325 (let ((table (make-char-table 'generic))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
326 (i 0)
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
327 (len (length cyrillic-alternativnyj-decode-table)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
328 (while (< i len)
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
329 (let ((ch (aref cyrillic-alternativnyj-decode-table i)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
330 (if (characterp ch)
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
331 (put-char-table ch i table)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
332 (incf i)))
026c5bf9c134 [xemacs-hg @ 2002-03-21 07:29:57 by ben]
ben
parents: 778
diff changeset
333 "Table to convert from characters to their Alternativnyj code.")
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
334
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
335 (set-language-info-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
336 "Cyrillic-ALT" '((charset cyrillic-iso8859-5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
337 (coding-system alternativnyj)
3707
f6f6fc9eb269 [xemacs-hg @ 2006-11-28 21:20:22 by aidan]
aidan
parents: 788
diff changeset
338 (native-coding-system alternativnyj)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
339 (coding-priority alternativnyj)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
340 (input-method . "cyrillic-yawerty")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
341 (features cyril-util)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
342 (tutorial . "TUTORIAL.ru")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
343 (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
344 (documentation . "Support for Cyrillic ALTERNATIVNYJ."))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
345 '("Cyrillic"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
346
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
347 ;;; cyrillic.el ends here