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
|
|
129 (set-language-info-alist
|
|
130 "Greek" '((charset greek-iso8859-7)
|
|
131 (coding-system iso-8859-7)
|
|
132 (coding-priority iso-8859-7)
|
3769
|
133 (native-coding-system iso-8859-7)
|
771
|
134 (locale "el_GR.iso88597" "el_GR.greek8" "el_GR" "greek" "el")
|
428
|
135 (input-method . "greek")
|
771
|
136 (sample-text . "Greek (,FGkk]mija(B) ,FCei\(B ,Fsar(B")
|
428
|
137 (documentation . t)))
|
|
138
|
|
139 ;;; greek.el ends here
|