1 ;;; cyril-util.el --- utilities for Cyrillic scripts -*- coding: iso-2022-7bit; -*-
3 ;; Copyright (C) 1997 Free Software Foundation, Inc.
4 ;; Copyright (C) 2002 Ben Wing.
6 ;; Keywords: mule, multilingual, Cyrillic
8 ;; This file is part of XEmacs.
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)
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.
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
25 ;;; Synched up with: Emacs 21.1 (language/cyril-util.el).
34 ;; Written by Valery Alexeev <valery@math.uga.edu>.
36 (defvar cyrillic-language-alist
37 '(("Belorussian") ("Bulgarian") ("Macedonian") ("Russian") ("Serbian")
39 "*List of known Cyrillic languages")
42 (defun standard-display-cyrillic-translit (&optional cyrillic-language
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'.
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'.
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. "
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
64 (or current-prefix-arg
66 (format "Cyrillic language (default %s): " default-language)
67 cyrillic-language-alist nil t nil nil default-language)))))
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)
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))
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))
183 (provide 'cyril-util)
186 ;; coding: iso-2022-7bit
189 ;;; cyril-util.el ends here