Remove non-free old and crusty clearcase pkg
[packages] / mule-packages / mule-base / cyril-util.el
1 ;;; cyril-util.el ---  utilities for Cyrillic scripts -*- coding: iso-2022-7bit; -*-
2
3 ;; Copyright (C) 1997  Free Software Foundation, Inc.
4 ;; Copyright (C) 2002 Ben Wing.
5
6 ;; Keywords: mule, multilingual, Cyrillic
7
8 ;; This file is part of XEmacs.
9
10 ;; XEmacs is free software; you can redistribute it and/or modify it
11 ;; under the terms of the GNU General Public License as published by
12 ;; the Free Software Foundation; either version 2, or (at your option)
13 ;; any later version.
14
15 ;; XEmacs is distributed in the hope that it will be useful, but
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 ;; General Public License for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with XEmacs; see the file COPYING.  If not, write to the Free
22 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23 ;; 02111-1307, USA.
24
25 ;;; Synched up with: Emacs 21.1 (language/cyril-util.el).
26
27 ;;; Commentary:
28
29 ;;; Code:
30
31 \f
32 ;; Display 
33
34 ;; Written by Valery Alexeev <valery@math.uga.edu>.
35
36 (defvar cyrillic-language-alist
37       '(("Belorussian") ("Bulgarian") ("Macedonian") ("Russian") ("Serbian")
38         ("Ukrainian"))
39       "*List of known Cyrillic languages")
40
41 ;;;###autoload
42 (defun standard-display-cyrillic-translit (&optional cyrillic-language
43                                            disable)
44   "Display a cyrillic buffer using a transliteration.
45 For readability, the table is slightly
46 different from the one used for the input method `cyrillic-translit'.
47
48 The argument is a string which specifies which language you are using;
49 that affects the choice of transliterations slightly.
50 Possible values are listed in 'cyrillic-language-alist'.
51
52 Specifying a prefix arg, by preceding
53 \\[standard-display-cyrillic-translit] with \\[universal-argument]
54 turns off Cyrillic display.  Noninteractively, the DISABLE argument
55 does the same thing.  "
56   (interactive
57    (list
58     (let* ((completion-ignore-case t)
59            (default-language (if (assoc-ignore-case
60                                   current-language-environment
61                                   cyrillic-language-alist)
62                                  current-language-environment
63                                "Russian")))
64       (or current-prefix-arg
65           (completing-read
66            (format "Cyrillic language (default %s): " default-language)
67            cyrillic-language-alist nil t nil nil default-language)))))
68   (frob-display-table
69    (lambda (display-table)
70      (if (or disable current-prefix-arg)
71          (if (char-table-p display-table)
72              (remove-char-table 'cyrillic-iso8859-5 display-table))
73        (put-display-table ?\e,LP\e(B "a"   display-table)
74        (put-display-table ?\e,LQ\e(B "b"   display-table)
75        (put-display-table ?\e,LR\e(B "v"   display-table)
76        (put-display-table ?\e,LS\e(B "g"   display-table)
77        (put-display-table ?\e,LT\e(B "d"   display-table)
78        (put-display-table ?\e,LU\e(B "e"   display-table)
79        (put-display-table ?\e,Lq\e(B "yo"  display-table)
80        (put-display-table ?\e,LV\e(B "zh"  display-table)
81        (put-display-table ?\e,LW\e(B "z"   display-table)
82        (put-display-table ?\e,LX\e(B "i"   display-table)
83        (put-display-table ?\e,LY\e(B "j"   display-table)
84        (put-display-table ?\e,LZ\e(B "k"   display-table)
85        (put-display-table ?\e,L[\e(B "l"   display-table)
86        (put-display-table ?\e,L\\e(B "m"   display-table)
87        (put-display-table ?\e,L]\e(B "n"   display-table)
88        (put-display-table ?\e,L^\e(B "o"   display-table)
89        (put-display-table ?\e,L_\e(B "p"   display-table)
90        (put-display-table ?\e,L`\e(B "r"   display-table)
91        (put-display-table ?\e,La\e(B "s"   display-table)
92        (put-display-table ?\e,Lb\e(B "t"   display-table)
93        (put-display-table ?\e,Lc\e(B "u"   display-table)
94        (put-display-table ?\e,Ld\e(B "f"   display-table)
95        (put-display-table ?\e,Le\e(B "kh"  display-table)
96        (put-display-table ?\e,Lf\e(B "ts"  display-table)
97        (put-display-table ?\e,Lg\e(B "ch"  display-table)
98        (put-display-table ?\e,Lh\e(B "sh"  display-table)
99        (put-display-table ?\e,Li\e(B "sch" display-table)
100        (put-display-table ?\e,Lj\e(B "~"   display-table)
101        (put-display-table ?\e,Lk\e(B "y"   display-table)
102        (put-display-table ?\e,Ll\e(B "'"   display-table)
103        (put-display-table ?\e,Lm\e(B "e'"  display-table)
104        (put-display-table ?\e,Ln\e(B "yu"  display-table)
105        (put-display-table ?\e,Lo\e(B "ya"  display-table)
106        (put-display-table ?\e,L0\e(B "A"   display-table)
107        (put-display-table ?\e,L1\e(B "B"   display-table)
108        (put-display-table ?\e,L2\e(B "V"   display-table)
109        (put-display-table ?\e,L3\e(B "G"   display-table)
110        (put-display-table ?\e,L4\e(B "D"   display-table)
111        (put-display-table ?\e,L5\e(B "E"   display-table)
112        (put-display-table ?\e,L!\e(B "Yo"  display-table)
113        (put-display-table ?\e,L6\e(B "Zh"  display-table)
114        (put-display-table ?\e,L7\e(B "Z"   display-table)
115        (put-display-table ?\e,L8\e(B "I"   display-table)
116        (put-display-table ?\e,L9\e(B "J"   display-table)
117        (put-display-table ?\e,L:\e(B "K"   display-table)
118        (put-display-table ?\e,L;\e(B "L"   display-table)
119        (put-display-table ?\e,L<\e(B "M"   display-table)
120        (put-display-table ?\e,L=\e(B "N"   display-table)
121        (put-display-table ?\e,L>\e(B "O"   display-table)
122        (put-display-table ?\e,L?\e(B "P"   display-table)
123        (put-display-table ?\e,L@\e(B "R"   display-table)
124        (put-display-table ?\e,LA\e(B "S"   display-table)
125        (put-display-table ?\e,LB\e(B "T"   display-table)
126        (put-display-table ?\e,LC\e(B "U"   display-table)
127        (put-display-table ?\e,LD\e(B "F"   display-table)
128        (put-display-table ?\e,LE\e(B "Kh"  display-table)
129        (put-display-table ?\e,LF\e(B "Ts"  display-table)
130        (put-display-table ?\e,LG\e(B "Ch"  display-table)
131        (put-display-table ?\e,LH\e(B "Sh"  display-table)
132        (put-display-table ?\e,LI\e(B "Sch" display-table)
133        (put-display-table ?\e,LJ\e(B "~"   display-table)
134        (put-display-table ?\e,LK\e(B "Y"   display-table)
135        (put-display-table ?\e,LL\e(B "'"   display-table)
136        (put-display-table ?\e,LM\e(B "E'"  display-table)
137        (put-display-table ?\e,LN\e(B "Yu"  display-table)
138        (put-display-table ?\e,LO\e(B "Ya"  display-table)
139        (put-display-table ?\e,Lt\e(B "ie"  display-table)
140        (put-display-table ?\e,Lw\e(B "i"   display-table)
141        (put-display-table ?\e,L~\e(B "u"   display-table)
142        (put-display-table ?\e,Lr\e(B "dj"  display-table)
143        (put-display-table ?\e,L{\e(B "chj" display-table)
144        (put-display-table ?\e,Ls\e(B "gj"  display-table)
145        (put-display-table ?\e,Lu\e(B "s"   display-table)
146        (put-display-table ?\e,L|\e(B "k"   display-table)
147        (put-display-table ?\e,Lv\e(B "i"   display-table)
148        (put-display-table ?\e,Lx\e(B "j"   display-table)
149        (put-display-table ?\e,Ly\e(B "lj"  display-table)
150        (put-display-table ?\e,Lz\e(B "nj"  display-table)
151        (put-display-table ?\e,L\7f\e(B "dz"  display-table)
152        (put-display-table ?\e,L$\e(B "Ye"  display-table)
153        (put-display-table ?\e,L'\e(B "Yi"  display-table)
154        (put-display-table ?\e,L.\e(B "U"   display-table)
155        (put-display-table ?\e,L"\e(B "Dj"  display-table)
156        (put-display-table ?\e,L+\e(B "Chj" display-table)
157        (put-display-table ?\e,L#\e(B "Gj"  display-table)
158        (put-display-table ?\e,L%\e(B "S"   display-table)
159        (put-display-table ?\e,L,\e(B "K"   display-table)
160        (put-display-table ?\e,L&\e(B "I"   display-table)
161        (put-display-table ?\e,L(\e(B "J"   display-table)
162        (put-display-table ?\e,L)\e(B "Lj"  display-table)
163        (put-display-table ?\e,L*\e(B "Nj"  display-table)
164        (put-display-table ?\e,L/\e(B "Dj"  display-table)
165     
166        (when (equal cyrillic-language "Bulgarian")
167          (put-display-table ?\e,Li\e(B "sht"  display-table)
168          (put-display-table ?\e,LI\e(B "Sht"  display-table)
169          (put-display-table ?\e,Ln\e(B "iu"   display-table)
170          (put-display-table ?\e,LN\e(B "Iu"   display-table)
171          (put-display-table ?\e,Lo\e(B "ia"   display-table)
172          (put-display-table ?\e,LO\e(B "Ia"   display-table))
173
174        (when (equal cyrillic-language "Ukrainian") ; based on the official 
175                                         ; transliteration table
176          (put-display-table ?\e,LX\e(B "y"    display-table)
177          (put-display-table ?\e,L8\e(B "Y"    display-table)
178          (put-display-table ?\e,LY\e(B "i"    display-table)
179          (put-display-table ?\e,L9\e(B "Y"    display-table)
180          (put-display-table ?\e,Ln\e(B "iu"   display-table)
181          (put-display-table ?\e,Lo\e(B "ia"   display-table)))) nil))
182 ;;
183 (provide 'cyril-util)
184
185 ;; Local Variables:
186 ;; coding: iso-2022-7bit
187 ;; End:
188
189 ;;; cyril-util.el ends here