502
|
1 ;;; greek.el --- Support for Greek -*- coding: iso-2022-7bit; -*-
|
428
|
2
|
|
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
|
|
4 ;; Licensed to the Free Software Foundation.
|
|
5 ;; Copyright (C) 1997 MORIOKA Tomohiko
|
|
6
|
3767
|
7 ;; Keywords: multilingual, Greek, dumped
|
428
|
8
|
|
9 ;; This file is part of XEmacs.
|
|
10
|
|
11 ;; XEmacs is free software; you can redistribute it and/or modify it
|
|
12 ;; under the terms of the GNU General Public License as published by
|
|
13 ;; the Free Software Foundation; either version 2, or (at your option)
|
|
14 ;; any later version.
|
|
15
|
|
16 ;; XEmacs is distributed in the hope that it will be useful, but
|
|
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
19 ;; General Public License for more details.
|
|
20
|
|
21 ;; You should have received a copy of the GNU General Public License
|
|
22 ;; along with XEmacs; see the file COPYING. If not, write to the Free
|
|
23 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
24 ;; 02111-1307, USA.
|
|
25
|
|
26 ;;; Commentary:
|
|
27
|
|
28 ;; For Greek, the character set ISO8859-7 is supported.
|
|
29
|
|
30 ;;; Code:
|
|
31
|
3767
|
32 ;; Case table:
|
3748
|
33 (loop
|
|
34 for (upper lower)
|
|
35 in '((#xdb #xfb) ;; UPSILON WITH DIALYTIKA
|
|
36 (#xda #xfa) ;; IOTA WITH DIALYTIKA
|
|
37 (#xd9 #xf9) ;; OMEGA
|
|
38 (#xd8 #xf8) ;; PSI
|
|
39 (#xd7 #xf7) ;; CHI
|
|
40 (#xd6 #xf6) ;; PHI
|
|
41 (#xd5 #xf5) ;; UPSILON
|
|
42 (#xd4 #xf4) ;; TAU
|
|
43 (#xd3 #xf3) ;; SIGMA
|
|
44 (#xd1 #xf1) ;; RHO
|
|
45 (#xd0 #xf0) ;; PI
|
|
46 (#xcf #xef) ;; OMICRON
|
|
47 (#xce #xee) ;; XI
|
|
48 (#xcd #xed) ;; NU
|
|
49 (#xcc #xec) ;; MU
|
|
50 (#xcb #xeb) ;; LAMDA
|
|
51 (#xca #xea) ;; KAPPA
|
|
52 (#xc9 #xe9) ;; IOTA
|
|
53 (#xc8 #xe8) ;; THETA
|
|
54 (#xc7 #xe7) ;; ETA
|
|
55 (#xc6 #xe6) ;; ZETA
|
|
56 (#xc5 #xe5) ;; EPSILON
|
|
57 (#xc4 #xe4) ;; DELTA
|
|
58 (#xc3 #xe3) ;; GAMMA
|
|
59 (#xc2 #xe2) ;; BETA
|
|
60 (#xc1 #xe1) ;; ALPHA
|
|
61 (#xbf #xfe) ;; OMEGA WITH TONOS
|
|
62 (#xbe #xfd) ;; UPSILON WITH TONOS
|
|
63 (#xbc #xfc) ;; OMICRON WITH TONOS
|
|
64 (#xba #xdf) ;; IOTA WITH TONOS
|
|
65 (#xb9 #xde) ;; ETA WITH TONOS
|
|
66 (#xb8 #xdd) ;; EPSILON WITH TONOS
|
|
67 (#xb6 #xdc) ;; ALPHA WITH TONOS
|
|
68 (#xD3 #xF2)) ;; FINAL SIGMA
|
|
69 ;; No case mappings for:
|
|
70 ;;
|
|
71 ;; (#xE0 "GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS")
|
|
72 ;; (#xC0 "GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS")
|
|
73 ;;
|
|
74 with case-table = (standard-case-table)
|
|
75 do
|
|
76 (put-case-table-pair (make-char 'greek-iso8859-7 upper)
|
|
77 (make-char 'greek-iso8859-7 lower) case-table))
|
778
|
78
|
3767
|
79 ;; Now, syntax. Copy from appropriate characters in Latin 1.
|
|
80
|
|
81 ;; This code requires that the guillemets not have parenthesis syntax.
|
|
82
|
|
83 (assert (not (memq (char-syntax (make-char 'latin-iso8859-1 #xAB)) '(?\( ?\))))
|
|
84 t "This code assumes \xAB does not have parenthesis syntax. ")
|
|
85
|
|
86 (assert (not (memq (char-syntax (make-char 'latin-iso8859-1 #xBB)) '(?\( ?\))))
|
|
87 t "This code assumes \xBB does not have parenthesis syntax. ")
|
428
|
88
|
3767
|
89 (loop
|
|
90 for (greek latin-1)
|
|
91 in '((#xA0 #xA0) ;; NO BREAK SPACE
|
|
92 (#xA1 #xAB) ;; LEFT SINGLE QUOTATION MARK, LEFT DOUBLE ANGLE QUOTE
|
|
93 (#xA2 #xBB) ;; RIGHT SINGLE QUOTATION MARK, RIGHT DOUBLE ANGLE QUOTE
|
|
94 (#xA3 #xA3) ;; POUND SIGN
|
|
95 (#xA4 #xA3) ;; EURO SIGN, POUND SIGN
|
|
96 (#xA5 #xA3) ;; DRACHMA SIGN, POUND SIGN
|
|
97 (#xA6 #xA6) ;; BROKEN BAR
|
|
98 (#xA7 #xA7) ;; SECTION SIGN
|
|
99 (#xA8 #xA8) ;; DIAERESIS
|
|
100 (#xA9 #xA9) ;; COPYRIGHT SIGN
|
|
101 (#xAA #xB4) ;; GREEK YPOGEGRAMMENI (iota subscript), ACUTE ACCENT
|
|
102 (#xAB #xAB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
103 (#xAC #xAC) ;; NOT SIGN
|
|
104 (#xAD #xAD) ;; SOFT HYPHEN
|
|
105 (#xAF #xA6) ;; HORIZONTAL BAR, BROKEN BAR
|
|
106 (#xB0 #xB0) ;; DEGREE SIGN
|
|
107 (#xB1 #xB1) ;; PLUS-MINUS SIGN
|
|
108 (#xB2 #xB2) ;; SUPERSCRIPT TWO
|
|
109 (#xB3 #xB3) ;; SUPERSCRIPT THREE
|
|
110 (#xB4 #xB4) ;; GREEK TONOS, ACUTE ACCENT
|
|
111 (#xB5 #xB4) ;; GREEK DIALYTIKA TONOS, ACUTE ACCENT
|
|
112 (#xB7 #xB7) ;; MIDDLE DOT
|
|
113 (#xBB #xBB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
114 (#xBD #xBD)) ;; VULGAR FRACTION ONE HALF
|
|
115 with syntax-table = (standard-syntax-table)
|
|
116 do (modify-syntax-entry
|
|
117 (make-char 'greek-iso8859-7 greek)
|
|
118 (string (char-syntax (make-char 'latin-iso8859-1 latin-1)))
|
|
119 syntax-table))
|
428
|
120
|
|
121 (make-coding-system
|
771
|
122 'iso-8859-7 'iso2022 "ISO-8859-7 (Greek)"
|
428
|
123 '(charset-g0 ascii
|
|
124 charset-g1 greek-iso8859-7
|
|
125 charset-g2 t
|
|
126 charset-g3 t
|
3748
|
127 mnemonic "Grk"))
|
428
|
128
|
4090
|
129 ;; Windows 1253 may be provided automatically on Windows, in which case
|
|
130 ;; we don't need to provide it.
|
|
131 (unless (find-coding-system 'windows-1253)
|
|
132 (make-8-bit-coding-system
|
|
133 'windows-1253
|
|
134 '((#x80 ?\u20AC) ;; EURO SIGN
|
|
135 (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK
|
|
136 (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK
|
|
137 (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK
|
|
138 (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS
|
|
139 (#x86 ?\u2020) ;; DAGGER
|
|
140 (#x87 ?\u2021) ;; DOUBLE DAGGER
|
|
141 (#x89 ?\u2030) ;; PER MILLE SIGN
|
|
142 (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
|
143 (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK
|
|
144 (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK
|
|
145 (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK
|
|
146 (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK
|
|
147 (#x95 ?\u2022) ;; BULLET
|
|
148 (#x96 ?\u2013) ;; EN DASH
|
|
149 (#x97 ?\u2014) ;; EM DASH
|
|
150 (#x99 ?\u2122) ;; TRADE MARK SIGN
|
|
151 (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
|
152 (#xA0 ?\u00A0) ;; NO-BREAK SPACE
|
|
153 (#xA1 ?\u0385) ;; GREEK DIALYTIKA TONOS
|
|
154 (#xA2 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS
|
|
155 (#xA3 ?\u00A3) ;; POUND SIGN
|
|
156 (#xA4 ?\u00A4) ;; CURRENCY SIGN
|
|
157 (#xA5 ?\u00A5) ;; YEN SIGN
|
|
158 (#xA6 ?\u00A6) ;; BROKEN BAR
|
|
159 (#xA7 ?\u00A7) ;; SECTION SIGN
|
|
160 (#xA8 ?\u00A8) ;; DIAERESIS
|
|
161 (#xA9 ?\u00A9) ;; COPYRIGHT SIGN
|
|
162 (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
163 (#xAC ?\u00AC) ;; NOT SIGN
|
|
164 (#xAD ?\u00AD) ;; SOFT HYPHEN
|
|
165 (#xAE ?\u00AE) ;; REGISTERED SIGN
|
|
166 (#xAF ?\u2015) ;; HORIZONTAL BAR
|
|
167 (#xB0 ?\u00B0) ;; DEGREE SIGN
|
|
168 (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN
|
|
169 (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO
|
|
170 (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE
|
|
171 (#xB4 ?\u0384) ;; GREEK TONOS
|
|
172 (#xB5 ?\u00B5) ;; MICRO SIGN
|
|
173 (#xB6 ?\u00B6) ;; PILCROW SIGN
|
|
174 (#xB7 ?\u00B7) ;; MIDDLE DOT
|
|
175 (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS
|
|
176 (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS
|
|
177 (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS
|
|
178 (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
179 (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS
|
|
180 (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF
|
|
181 (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS
|
|
182 (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS
|
|
183 (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
|
|
184 (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA
|
|
185 (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA
|
|
186 (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA
|
|
187 (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA
|
|
188 (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON
|
|
189 (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA
|
|
190 (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA
|
|
191 (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA
|
|
192 (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA
|
|
193 (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA
|
|
194 (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA
|
|
195 (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU
|
|
196 (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU
|
|
197 (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI
|
|
198 (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON
|
|
199 (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI
|
|
200 (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO
|
|
201 (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA
|
|
202 (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU
|
|
203 (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON
|
|
204 (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI
|
|
205 (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI
|
|
206 (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI
|
|
207 (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA
|
|
208 (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
|
|
209 (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
|
|
210 (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS
|
|
211 (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS
|
|
212 (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS
|
|
213 (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS
|
|
214 (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
|
|
215 (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA
|
|
216 (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA
|
|
217 (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA
|
|
218 (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA
|
|
219 (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON
|
|
220 (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA
|
|
221 (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA
|
|
222 (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA
|
|
223 (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA
|
|
224 (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA
|
|
225 (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA
|
|
226 (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU
|
|
227 (#xED ?\u03BD) ;; GREEK SMALL LETTER NU
|
|
228 (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI
|
|
229 (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON
|
|
230 (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI
|
|
231 (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO
|
|
232 (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA
|
|
233 (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA
|
|
234 (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU
|
|
235 (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON
|
|
236 (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI
|
|
237 (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI
|
|
238 (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI
|
|
239 (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA
|
|
240 (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA
|
|
241 (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA
|
|
242 (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS
|
|
243 (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS
|
|
244 (#xFE ?\u03CE)) ;; GREEK SMALL LETTER OMEGA WITH TONOS
|
|
245 "Microsoft's Code Page 1253, for monotonic Greek. "
|
|
246 '(mnemonic "GrkW"
|
|
247 documentation
|
|
248 "This ASCII-compatible encoding is slightly incompatibile with
|
|
249 ISO-8859-7; it provides several widely-used punctuation marks in the C1
|
|
250 ISO-2022 area, which makes it incompatbile with the latter standard, but
|
|
251 that latter standard is not used in Greece, "
|
|
252 aliases (cp1253))))
|
|
253
|
428
|
254 (set-language-info-alist
|
|
255 "Greek" '((charset greek-iso8859-7)
|
|
256 (coding-system iso-8859-7)
|
|
257 (coding-priority iso-8859-7)
|
3769
|
258 (native-coding-system iso-8859-7)
|
4090
|
259 (locale "el")
|
428
|
260 (input-method . "greek")
|
771
|
261 (sample-text . "Greek (,FGkk]mija(B) ,FCei\(B ,Fsar(B")
|
428
|
262 (documentation . t)))
|
|
263
|
4090
|
264 ;; Greek (WINDOWS-1253) will be generated automatically under Unix.
|
|
265
|
428
|
266 ;;; greek.el ends here
|