comparison lisp/mule/latin.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 4ee3cf8de81d
children a4284dd2debb
comparison
equal deleted inserted replaced
3766:a3dcf9d17a40 3767:6b2ef948e140
1 ;;; latin.el --- Support for Latin charsets. -*- coding: iso-2022-7bit; -*- 1 ;;; latin.el --- Roman-alphabet languages -*- coding: iso-2022-7bit; -*-
2 2
3 ;; Copyright (C) 2001, 2005 Free Software Foundation, Inc. 3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
4 4 ;; Licensed to the Free Software Foundation.
5 ;; Author: Hrvoje Niksic <hniksic@xemacs.org> 5 ;; Copyright (C) 1997 MORIOKA Tomohiko
6 ;; Maintainer: XEmacs Development Team 6 ;; Copyright (C) 2001 Ben Wing.
7 ;; Keywords: multilingual, European, dumped 7 ;; Copyright (C) 2002, 2005, 2006 Free Software Foundation
8
9 ;; Keywords: multilingual, latin, dumped
8 10
9 ;; This file is part of XEmacs. 11 ;; This file is part of XEmacs.
10 12
11 ;; XEmacs is free software; you can redistribute it and/or modify it 13 ;; 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 14 ;; under the terms of the GNU General Public License as published by
23 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 25 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
24 ;; 02111-1307, USA. 26 ;; 02111-1307, USA.
25 27
26 ;;; Commentary: 28 ;;; Commentary:
27 29
28 ;; This file is meant to provide support for Latin character sets. 30 ;; For Roman-alphabet-using Europeans, eight coded character sets,
29 ;; The place for that used to be `european.el', but I am hesitant to 31 ;; ISO8859-1,2,3,4,9,14,15,16 are supported.
30 ;; change that file, as it is full of old cruft that I hope to phase 32
31 ;; out. Currently this file provides only the case table setup.
32
33
34 ;;; Code: 33 ;;; Code:
35 34
36 ;; Case table setup. We set up all the case tables using 35 ;; Case table setup. We set up all the case tables using
37 ;; put-case-table-pair. The data for this comes from FSF Emacs 20.7 36 ;; put-case-table-pair. The data for this comes from FSF Emacs 20.7
38 ;; (lisp/international/latin-*.el), written by several people and 37 ;; (lisp/international/latin-*.el), written by several people and
39 ;; updated by Erik Naggum. 38 ;; updated by Erik Naggum.
40 39
41 (defun setup-case-pairs (charset pairs) 40 (defun setup-case-pairs (charset pairs)
42 (let ((tbl (standard-case-table))) 41 (loop
43 (loop for (uc lc) in pairs do 42 for (uc lc) in pairs
44 (put-case-table-pair (make-char charset uc) (make-char charset lc) tbl)))) 43 with table = (standard-case-table)
45 44 do (put-case-table-pair
46 ;; Latin 1. 45 (make-char charset uc) (make-char charset lc) table)))
47 46
48 (setup-case-pairs 47 ;; Latin-1's case is dealt with in iso8859-1.el, which see. Its syntax is
49 'latin-iso8859-1 48 ;; initialised in syntax.c:complex_vars_of_syntax.
50 '((192 224) ;latin letter a with grave 49
51 (193 225) ;latin letter a with acute 50
52 (194 226) ;latin letter a with circumflex 51 ;; Latin-2 (ISO-8859-2). Central Europe; Czech, Slovak, Hungarian, Polish,
53 (195 227) ;latin letter a with tilde 52 ;; Croatian, other languages.
54 (196 228) ;latin letter a with diaeresis 53 ;;
55 (197 229) ;latin letter a with ring above 54 ;; (Yes, it really is Central European. German written in Latin 2 and using
56 (198 230) ;latin letter ae 55 ;; only Umlaute and the sharp S in its non-ASCII repertoire is bit-for-bit
57 (199 231) ;latin letter c with cedilla 56 ;; identical with the same text in Latin-1.)
58 (200 232) ;latin letter e with grave 57
59 (201 233) ;latin letter e with acute 58 ;; The default character syntax is now word. Pay attention to the
60 (202 234) ;latin letter e with circumflex 59 ;; exceptions in ISO-8859-2, copying them from ISO-8859-1.
61 (203 235) ;latin letter e with diaeresis 60 (loop
62 (204 236) ;latin letter i with grave 61 for (latin-2 latin-1)
63 (205 237) ;latin letter i with acute 62 in '((#xA0 #xA0) ;; NO BREAK SPACE
64 (206 238) ;latin letter i with circumflex 63 (#xA2 #xB4) ;; BREVE, ACUTE ACCENT
65 (207 239) ;latin letter i with diaeresis 64 (#xA4 #xA4) ;; CURRENCY SIGN
66 (208 240) ;latin letter eth 65 (#xA7 #xA7) ;; SECTION SIGN
67 (209 241) ;latin letter n with tilde 66 (#xA8 #xA8) ;; DIAERESIS
68 (210 242) ;latin letter o with grave 67 (#xAD #xAD) ;; SOFT HYPHEN
69 (211 243) ;latin letter o with acute 68 (#xB0 #xB0) ;; DEGREE SIGN
70 (212 244) ;latin letter o with circumflex 69 (#xB2 #xB4) ;; OGONEK, ACUTE ACCENT
71 (213 245) ;latin letter o with tilde 70 (#xB4 #xB4) ;; ACUTE ACCENT
72 (214 246) ;latin letter o with diaeresis 71 (#xB7 #xB4) ;; CARON, ACUTE ACCENT
73 (216 248) ;latin letter o with stroke 72 (#xB8 #xB8) ;; CEDILLA
74 (217 249) ;latin letter u with grave 73 (#xBD #xB4) ;; DOUBLE ACUTE ACCENT, ACUTE ACCENT
75 (218 250) ;latin letter u with acute 74 (#xD7 #xD7) ;; MULTIPLICATION SIGN
76 (219 251) ;latin letter u with circumflex 75 (#xF7 #xF7) ;; DIVISION SIGN
77 (220 252) ;latin letter u with diaeresis 76 (#xFF #xB4)) ;; DOT ABOVE, ACUTE ACCENT
78 (221 253) ;latin letter y with acute 77 with syntax-table = (standard-syntax-table)
79 (222 254) ;latin letter thorn 78 do (modify-syntax-entry
80 )) 79 (make-char 'latin-iso8859-2 latin-2)
81 80 (string (char-syntax (make-char 'latin-iso8859-1 latin-1)))
82 ;; Latin 2. 81 syntax-table))
83 82
83 ;; Case.
84 (setup-case-pairs 84 (setup-case-pairs
85 'latin-iso8859-2 85 'latin-iso8859-2
86 '((161 177) ;latin letter a with ogonek 86 '((#xA1 #xB1) ;; A WITH OGONEK
87 (163 179) ;latin letter l with stroke 87 (#xA3 #xB3) ;; L WITH STROKE
88 (165 181) ;latin letter l with caron 88 (#xA5 #xB5) ;; L WITH CARON
89 (166 182) ;latin letter s with acute 89 (#xA6 #xB6) ;; S WITH ACUTE
90 (169 185) ;latin letter s with caron 90 (#xA9 #xB9) ;; S WITH CARON
91 (170 186) ;latin letter s with cedilla 91 (#xAA #xBA) ;; S WITH CEDILLA
92 (171 187) ;latin letter t with caron 92 (#xAB #xBB) ;; T WITH CARON
93 (172 188) ;latin letter z with acute 93 (#xAC #xBC) ;; Z WITH ACUTE
94 (174 190) ;latin letter z with caron 94 (#xAE #xBE) ;; Z WITH CARON
95 (175 191) ;latin letter z with dot above 95 (#xAF #xBF) ;; Z WITH DOT ABOVE
96 (192 224) ;latin letter r with acute 96 (#xC0 #xE0) ;; R WITH ACUTE
97 (193 225) ;latin letter a with acute 97 (#xC1 #xE1) ;; A WITH ACUTE
98 (194 226) ;latin letter a with circumflex 98 (#xC2 #xE2) ;; A WITH CIRCUMFLEX
99 (195 227) ;latin letter a with breve 99 (#xC3 #xE3) ;; A WITH BREVE
100 (196 228) ;latin letter a with diaeresis 100 (#xC4 #xE4) ;; A WITH DIAERESIS
101 (197 229) ;latin letter l with acute 101 (#xC5 #xE5) ;; L WITH ACUTE
102 (198 230) ;latin letter c with acute 102 (#xC6 #xE6) ;; C WITH ACUTE
103 (199 231) ;latin letter c with cedilla 103 (#xC7 #xE7) ;; C WITH CEDILLA
104 (200 232) ;latin letter c with caron 104 (#xC8 #xE8) ;; C WITH CARON
105 (201 233) ;latin letter e with acute 105 (#xC9 #xE9) ;; E WITH ACUTE
106 (202 234) ;latin letter e with ogonek 106 (#xCA #xEA) ;; E WITH OGONEK
107 (203 235) ;latin letter e with diaeresis 107 (#xCB #xEB) ;; E WITH DIAERESIS
108 (204 236) ;latin letter e with caron 108 (#xCC #xEC) ;; E WITH CARON
109 (205 237) ;latin letter i with acute 109 (#xCD #xED) ;; I WITH ACUTE
110 (206 238) ;latin letter i with circumflex 110 (#xCE #xEE) ;; I WITH CIRCUMFLEX
111 (207 239) ;latin letter d with caron 111 (#xCF #xEF) ;; D WITH CARON
112 (208 240) ;latin letter d with stroke 112 (#xD0 #xF0) ;; D WITH STROKE
113 (209 241) ;latin letter n with acute 113 (#xD1 #xF1) ;; N WITH ACUTE
114 (210 242) ;latin letter n with caron 114 (#xD2 #xF2) ;; N WITH CARON
115 (211 243) ;latin letter o with acute 115 (#xD3 #xF3) ;; O WITH ACUTE
116 (212 244) ;latin letter o with circumflex 116 (#xD4 #xF4) ;; O WITH CIRCUMFLEX
117 (213 245) ;latin letter o with double acute 117 (#xD5 #xF5) ;; O WITH DOUBLE ACUTE
118 (214 246) ;latin letter o with diaeresis 118 (#xD6 #xF6) ;; O WITH DIAERESIS
119 (216 248) ;latin letter r with caron 119 (#xD8 #xF8) ;; R WITH CARON
120 (217 249) ;latin letter u with ring above 120 (#xD9 #xF9) ;; U WITH RING ABOVE
121 (218 250) ;latin letter u with acute 121 (#xDA #xFA) ;; U WITH ACUTE
122 (219 251) ;latin letter u with double acute 122 (#xDB #xFB) ;; U WITH DOUBLE ACUTE
123 (220 252) ;latin letter u with diaeresis 123 (#xDC #xFC) ;; U WITH DIAERESIS
124 (221 253) ;latin letter y with acute 124 (#xDD #xFD) ;; Y WITH ACUTE
125 (222 254) ;latin letter t with cedilla 125 (#xDE #xFE))) ;; T WITH CEDILLA
126 )) 126
127 127 (make-coding-system
128 ;; Latin 3. 128 'iso-8859-2 'iso2022 "ISO-8859-2 (Latin-2)"
129 129 '(charset-g0 ascii
130 charset-g1 latin-iso8859-2
131 charset-g2 t
132 charset-g3 t
133 mnemonic "MIME/Ltn-2"))
134
135
136 ;;
137 ;; Latin-3 (ISO-8859-3). Esperanto, Maltese and Turkish. Obsolescent.
138
139 ;; Initialise the non-word syntax codes in ISO-8859-3, copying them from
140 ;; ISO-8859-1.
141 (loop
142 for (latin-3 latin-1)
143 in '((#xA0 #xA0) ;; NO BREAK SPACE
144 (#xA2 #xB4) ;; BREVE, ACUTE ACCENT
145 (#xA3 #xA3) ;; POUND SIGN
146 (#xA4 #xA4) ;; CURRENCY SIGN
147 (#xA7 #xA7) ;; SECTION SIGN
148 (#xA8 #xA8) ;; DIAERESIS
149 (#xAD #xAD) ;; SOFT HYPHEN
150 (#xB0 #xB0) ;; DEGREE SIGN
151 (#xB2 #xB2) ;; SUPERSCRIPT TWO
152 (#xB3 #xB3) ;; SUPERSCRIPT THREE
153 (#xB4 #xB4) ;; ACUTE ACCENT
154 (#xB5 #xB5) ;; MICRO SIGN
155 (#xB7 #xB7) ;; MIDDLE DOT
156 (#xB8 #xB8) ;; CEDILLA
157 (#xBD #xBD) ;; VULGAR FRACTION ONE HALF
158 (#xD7 #xD7) ;; MULTIPLICATION SIGN
159 (#xF7 #xF7) ;; DIVISION SIGN
160 (#xFF #xB4)) ;; DOT ABOVE, ACUTE ACCENT
161 with syntax-table = (standard-syntax-table)
162 do (modify-syntax-entry
163 (make-char 'latin-iso8859-3 latin-3)
164 (string (char-syntax (make-char 'latin-iso8859-1 latin-1)))
165 syntax-table))
166
167 ;; Case.
130 (setup-case-pairs 168 (setup-case-pairs
131 'latin-iso8859-3 169 'latin-iso8859-3
132 '((161 177) ;latin letter h with stroke 170 '((#xA1 #xB1) ;; H WITH STROKE
133 (166 182) ;latin letter h with circumflex 171 (#xA6 #xB6) ;; H WITH CIRCUMFLEX
134 (170 186) ;latin letter s with cedilla 172 (#xAA #xBA) ;; S WITH CEDILLA
135 (171 187) ;latin letter g with breve 173 (#xAB #xBB) ;; G WITH BREVE
136 (172 188) ;latin letter j with circumflex 174 (#xAC #xBC) ;; J WITH CIRCUMFLEX
137 (175 191) ;latin letter z with dot above 175 (#xAF #xBF) ;; Z WITH DOT ABOVE
138 (192 224) ;latin letter a with grave 176 (#xC0 #xE0) ;; A WITH GRAVE
139 (193 225) ;latin letter a with acute 177 (#xC1 #xE1) ;; A WITH ACUTE
140 (194 226) ;latin letter a with circumflex 178 (#xC2 #xE2) ;; A WITH CIRCUMFLEX
141 (196 228) ;latin letter a with diaeresis 179 (#xC4 #xE4) ;; A WITH DIAERESIS
142 (197 229) ;latin letter c with dot above 180 (#xC5 #xE5) ;; C WITH DOT ABOVE
143 (198 230) ;latin letter c with circumflex 181 (#xC6 #xE6) ;; C WITH CIRCUMFLEX
144 (199 231) ;latin letter c with cedilla 182 (#xC7 #xE7) ;; C WITH CEDILLA
145 (200 232) ;latin letter e with grave 183 (#xC8 #xE8) ;; E WITH GRAVE
146 (201 233) ;latin letter e with acute 184 (#xC9 #xE9) ;; E WITH ACUTE
147 (202 234) ;latin letter e with circumflex 185 (#xCA #xEA) ;; E WITH CIRCUMFLEX
148 (203 235) ;latin letter e with diaeresis 186 (#xCB #xEB) ;; E WITH DIAERESIS
149 (204 236) ;latin letter i with grave 187 (#xCC #xEC) ;; I WITH GRAVE
150 (205 237) ;latin letter i with acute 188 (#xCD #xED) ;; I WITH ACUTE
151 (206 238) ;latin letter i with circumflex 189 (#xCE #xEE) ;; I WITH CIRCUMFLEX
152 (207 239) ;latin letter i with diaeresis 190 (#xCF #xEF) ;; I WITH DIAERESIS
153 (209 241) ;latin letter n with tilde 191 (#xD1 #xF1) ;; N WITH TILDE
154 (210 242) ;latin letter o with grave 192 (#xD2 #xF2) ;; O WITH GRAVE
155 (211 243) ;latin letter o with acute 193 (#xD3 #xF3) ;; O WITH ACUTE
156 (212 244) ;latin letter o with circumflex 194 (#xD4 #xF4) ;; O WITH CIRCUMFLEX
157 (213 245) ;latin letter g with dot above 195 (#xD5 #xF5) ;; G WITH DOT ABOVE
158 (214 246) ;latin letter o with diaeresis 196 (#xD6 #xF6) ;; O WITH DIAERESIS
159 (216 248) ;latin letter g with circumflex 197 (#xD8 #xF8) ;; G WITH CIRCUMFLEX
160 (217 249) ;latin letter u with grave 198 (#xD9 #xF9) ;; U WITH GRAVE
161 (218 250) ;latin letter u with acute 199 (#xDA #xFA) ;; U WITH ACUTE
162 (219 251) ;latin letter u with circumflex 200 (#xDB #xFB) ;; U WITH CIRCUMFLEX
163 (220 252) ;latin letter u with diaeresis 201 (#xDC #xFC) ;; U WITH DIAERESIS
164 (221 253) ;latin letter u with breve 202 (#xDD #xFD) ;; U WITH BREVE
165 (222 254) ;latin letter s with circumflex 203 (#xDE #xFE))) ;; S WITH CIRCUMFLEX
166 )) 204
167 205 (make-coding-system
168 ;; Latin 4. 206 'iso-8859-3 'iso2022 "ISO-8859-3 (Latin-3)"
169 207 '(charset-g0 ascii
208 charset-g1 latin-iso8859-3
209 charset-g2 t
210 charset-g3 t
211 mnemonic "MIME/Ltn-3"))
212
213
214 ;; Latin-4 (ISO-8859-4)
215
216 ;; Estonian, Latvian, Lithuanian, Greenlandic, and Sami. Obsolescent.
217
218 ;; The default character syntax is now word. Pay attention to the
219 ;; exceptions in ISO-8859-4, copying them from ISO-8859-1.
220 (loop
221 for (latin-4 latin-1)
222 in '((#xA0 #xA0) ;; NO BREAK SPACE
223 (#xA4 #xA4) ;; CURRENCY SIGN
224 (#xA7 #xA7) ;; SECTION SIGN
225 (#xA8 #xA8) ;; DIAERESIS
226 (#xAD #xAD) ;; SOFT HYPHEN
227 (#xB0 #xB0) ;; DEGREE SIGN
228 (#xB2 #xB4) ;; OGONEK, ACUTE ACCENT
229 (#xB4 #xB4) ;; ACUTE ACCENT
230 (#xB7 #xB4) ;; CARON, ACUTE ACCENT
231 (#xB8 #xB8) ;; CEDILLA
232 (#xD7 #xD7) ;; MULTIPLICATION SIGN
233 (#xF7 #xF7) ;; DIVISION SIGN
234 (#xFF #xB4)) ;; DOT ABOVE, ACUTE ACCENT
235 with syntax-table = (standard-syntax-table)
236 do (modify-syntax-entry
237 (make-char 'latin-iso8859-4 latin-4)
238 (string (char-syntax (make-char 'latin-iso8859-1 latin-1)))
239 syntax-table))
240
241 ;; Case.
170 (setup-case-pairs 242 (setup-case-pairs
171 'latin-iso8859-4 243 'latin-iso8859-4
172 '((161 177) ;latin letter a with ogonek 244 '((#xA1 #xB1) ;; A WITH OGONEK
173 (163 179) ;latin letter r with cedilla 245 (#xA3 #xB3) ;; R WITH CEDILLA
174 (165 181) ;latin letter i with tilde 246 (#xA5 #xB5) ;; I WITH TILDE
175 (166 182) ;latin letter l with cedilla 247 (#xA6 #xB6) ;; L WITH CEDILLA
176 (169 185) ;latin letter s with caron 248 (#xA9 #xB9) ;; S WITH CARON
177 (170 186) ;latin letter e with macron 249 (#xAA #xBA) ;; E WITH MACRON
178 (171 187) ;latin letter g with cedilla 250 (#xAB #xBB) ;; G WITH CEDILLA
179 (172 188) ;latin letter t with stroke 251 (#xAC #xBC) ;; T WITH STROKE
180 (174 190) ;latin letter z with caron 252 (#xAE #xBE) ;; Z WITH CARON
181 (189 191) ;eng 253 (#xBD #xBF) ;; ENG
182 (192 224) ;latin letter a with macron 254 (#xC0 #xE0) ;; A WITH MACRON
183 (193 225) ;latin letter a with acute 255 (#xC1 #xE1) ;; A WITH ACUTE
184 (194 226) ;latin letter a with circumflex 256 (#xC2 #xE2) ;; A WITH CIRCUMFLEX
185 (195 227) ;latin letter a with tilde 257 (#xC3 #xE3) ;; A WITH TILDE
186 (196 228) ;latin letter a with diaeresis 258 (#xC4 #xE4) ;; A WITH DIAERESIS
187 (197 229) ;latin letter a with ring above 259 (#xC5 #xE5) ;; A WITH RING ABOVE
188 (198 230) ;latin letter ae 260 (#xC6 #xE6) ;; AE
189 (199 231) ;latin letter i with ogonek 261 (#xC7 #xE7) ;; I WITH OGONEK
190 (200 232) ;latin letter c with caron 262 (#xC8 #xE8) ;; C WITH CARON
191 (201 233) ;latin letter e with acute 263 (#xC9 #xE9) ;; E WITH ACUTE
192 (202 234) ;latin letter e with ogonek 264 (#xCA #xEA) ;; E WITH OGONEK
193 (203 235) ;latin letter e with diaeresis 265 (#xCB #xEB) ;; E WITH DIAERESIS
194 (204 236) ;latin letter e with dot above 266 (#xCC #xEC) ;; E WITH DOT ABOVE
195 (205 237) ;latin letter i with acute 267 (#xCD #xED) ;; I WITH ACUTE
196 (206 238) ;latin letter i with circumflex 268 (#xCE #xEE) ;; I WITH CIRCUMFLEX
197 (207 239) ;latin letter i with macron 269 (#xCF #xEF) ;; I WITH MACRON
198 (208 240) ;latin letter d with stroke 270 (#xD0 #xF0) ;; D WITH STROKE
199 (209 241) ;latin letter n with cedilla 271 (#xD1 #xF1) ;; N WITH CEDILLA
200 (210 242) ;latin letter o with macron 272 (#xD2 #xF2) ;; O WITH MACRON
201 (211 243) ;latin letter k with cedilla 273 (#xD3 #xF3) ;; K WITH CEDILLA
202 (212 244) ;latin letter o with circumflex 274 (#xD4 #xF4) ;; O WITH CIRCUMFLEX
203 (213 245) ;latin letter o with tilde 275 (#xD5 #xF5) ;; O WITH TILDE
204 (214 246) ;latin letter o with diaeresis 276 (#xD6 #xF6) ;; O WITH DIAERESIS
205 (216 248) ;latin letter o with stroke 277 (#xD8 #xF8) ;; O WITH STROKE
206 (217 249) ;latin letter u with ogonek 278 (#xD9 #xF9) ;; U WITH OGONEK
207 (218 250) ;latin letter u with acute 279 (#xDA #xFA) ;; U WITH ACUTE
208 (219 251) ;latin letter u with circumflex 280 (#xDB #xFB) ;; U WITH CIRCUMFLEX
209 (220 252) ;latin letter u with diaeresis 281 (#xDC #xFC) ;; U WITH DIAERESIS
210 (221 253) ;latin letter u with tilde 282 (#xDD #xFD) ;; U WITH TILDE
211 (222 254) ;latin letter u with macron 283 (#xDE #xFE))) ;; U WITH MACRON
212 )) 284
213 285 (make-coding-system
214 ;; Latin 5. Currently unsupported. 286 'iso-8859-4 'iso2022 "ISO-8859-4 (Latin-4)"
215 287 '(charset-g0 ascii
216 ;(setup-case-pairs 288 charset-g1 latin-iso8859-4
217 ; 'latin-iso8859-5 289 charset-g2 t
218 ; '((192 224) ;latin letter a with grave 290 charset-g3 t
219 ; (193 225) ;latin letter a with acute 291 mnemonic "MIME/Ltn-4"))
220 ; (194 226) ;latin letter a with circumflex 292
221 ; (195 227) ;latin letter a with tilde 293
222 ; (196 228) ;latin letter a with diaeresis 294 ;; Latin-8 (ISO 8859-14) Celtic.
223 ; (197 229) ;latin letter a with ring above 295
224 ; (198 230) ;latin letter ae 296 ;; Never widely used. Current-orthography Gaelic, both Irish and Scots, is
225 ; (199 231) ;latin letter c with cedilla 297 ;; easily written with Latin-1. Wikipedia says the same about Welsh.
226 ; (200 232) ;latin letter e with grave 298
227 ; (201 233) ;latin letter e with acute 299 (make-charset 'latin-iso8859-14
228 ; (203 235) ;latin letter e with diaeresis 300 "Right-Hand Part of Latin Alphabet 8 (ISO/IEC 8859-14)"
229 ; (205 237) ;latin letter i with acute 301 '(dimension 1
230 ; (206 238) ;latin letter i with circumflex 302 registries ["ISO8859-14"]
231 ; (208 240) ;latin letter g with breve 303 chars 96
232 ; (209 241) ;latin letter n with tilde 304 columns 1
233 ; (210 242) ;latin letter o with grave 305 direction l2r
234 ; (211 243) ;latin letter o with acute 306 final ?_
235 ; (212 244) ;latin letter o with circumflex 307 graphic 1
236 ; (213 245) ;latin letter o with tilde 308 short-name "RHP of Latin-8"
237 ; (214 246) ;latin letter o with diaeresis 309 long-name "RHP of Latin-8 (ISO 8859-14)"))
238 ; (216 248) ;latin letter o with stroke 310
239 ; (217 249) ;latin letter u with grave 311 ;;
240 ; (218 250) ;latin letter u with acute 312 ;; Character syntax defaults to word. The exceptions here shared with Latin-1.
241 ; (219 251) ;latin letter u with circumflex 313 (dolist (code '(#xa0 ;; NO BREAK SPACE
242 ; (220 252) ;latin letter u with diaeresis 314 #xa3 ;; POUND SIGN
243 ; (222 254) ;latin letter s with cedilla 315 #xa7 ;; SECTION SIGN
244 ; )) 316 #xa9 ;; COPYRIGHT
245 317 #xad ;; SOFT HYPHEN
246 ;; Latin 9. 318 #xae ;; REGISTERED
319 #xb6)) ;; PILCROW SIGN
320 (modify-syntax-entry (make-char 'latin-iso8859-14 code)
321 (string (char-syntax (make-char 'latin-iso8859-1 code)))
322 (standard-syntax-table)))
323 ;; Case.
324 (setup-case-pairs
325 'latin-iso8859-14
326 '((#xA1 #xA2) ;; B WITH DOT ABOVE
327 (#xA4 #xA5) ;; C WITH DOT ABOVE
328 (#xA6 #xAB) ;; D WITH DOT ABOVE
329 (#xA8 #xB8) ;; W WITH GRAVE
330 (#xAA #xBA) ;; W WITH ACUTE
331 (#xAC #xBC) ;; Y WITH GRAVE
332 (#xAF #xFF) ;; Y WITH DIAERESIS
333 (#xB0 #xB1) ;; F WITH DOT ABOVE
334 (#xB2 #xB3) ;; G WITH DOT ABOVE
335 (#xB4 #xB5) ;; M WITH DOT ABOVE
336 (#xB7 #xB9) ;; P WITH DOT ABOVE
337 (#xBB #xBF) ;; S WITH DOT ABOVE
338 (#xBD #xBE) ;; W WITH DIAERESIS
339 (#xC0 #xE0) ;; A WITH GRAVE
340 (#xC1 #xE1) ;; A WITH ACUTE
341 (#xC2 #xE2) ;; A WITH CIRCUMFLEX
342 (#xC3 #xE3) ;; A WITH TILDE
343 (#xC4 #xE4) ;; A WITH DIAERESIS
344 (#xC5 #xE5) ;; A WITH RING ABOVE
345 (#xC6 #xE6) ;; AE
346 (#xC7 #xE7) ;; C WITH CEDILLA
347 (#xC8 #xE8) ;; E WITH GRAVE
348 (#xC9 #xE9) ;; E WITH ACUTE
349 (#xCA #xEA) ;; E WITH CIRCUMFLEX
350 (#xCB #xEB) ;; E WITH DIAERESIS
351 (#xCC #xEC) ;; I WITH GRAVE
352 (#xCD #xED) ;; I WITH ACUTE
353 (#xCE #xEE) ;; I WITH CIRCUMFLEX
354 (#xCF #xEF) ;; I WITH DIAERESIS
355 (#xD0 #xF0) ;; W WITH CIRCUMFLEX
356 (#xD1 #xF1) ;; N WITH TILDE
357 (#xD2 #xF2) ;; O WITH GRAVE
358 (#xD3 #xF3) ;; O WITH ACUTE
359 (#xD4 #xF4) ;; O WITH CIRCUMFLEX
360 (#xD5 #xF5) ;; O WITH TILDE
361 (#xD6 #xF6) ;; O WITH DIAERESIS
362 (#xD7 #xF7) ;; T WITH DOT ABOVE
363 (#xD8 #xF8) ;; O WITH STROKE
364 (#xD9 #xF9) ;; U WITH GRAVE
365 (#xDA #xFA) ;; U WITH ACUTE
366 (#xDB #xFB) ;; U WITH CIRCUMFLEX
367 (#xDC #xFC) ;; U WITH DIAERESIS
368 (#xDD #xFD) ;; Y WITH ACUTE
369 (#xDE #xFE))) ;; Y WITH CIRCUMFLEX
370
371
372 ;; The syntax table code for ISO 8859-15 and ISO 8859-16 requires that the
373 ;; guillemets not have parenthesis syntax, which they used to have in the
374 ;; past. See syntax.c:complex_vars_of_syntax.
375 (assert (not (memq (char-syntax (make-char 'latin-iso8859-1 #xAB)) '(?\( ?\))))
376 t "This code assumes \xAB does not have parenthesis syntax. ")
377
378 (assert (not (memq (char-syntax (make-char 'latin-iso8859-1 #xBB)) '(?\( ?\))))
379 t "This code assumes \xBB does not have parenthesis syntax. ")
380
381
382 ;; Latin-9 (ISO-8859-15)
383 ;;
384 ;; Latin-1 plus Euro, plus a few accented characters for the sake of correct
385 ;; Finnish and French orthography. Only ever widely used on Unix.
386
387 ;;
388 ;; Based on Latin-1 and differences therefrom.
389 ;;
390 ;; First, initialise the syntax from the corresponding Latin-1 characters.
391 (loop
392 for c from #xa0 to #xff
393 with syntax-table = (standard-syntax-table)
394 do (modify-syntax-entry
395 (make-char 'latin-iso8859-15 c)
396 (string (char-syntax (make-char 'latin-iso8859-1 c)))
397 syntax-table))
398
399 ;; Now, the exceptions. The Euro sign retains the syntax of CURRENCY SIGN.
400 (loop
401 for c in '(?,b&(B ?,b((B ?,b4(B ?,b8(B ?,b<(B ?,b=(B ?,b>(B)
402 with syntax-table = (standard-syntax-table)
403 do (modify-syntax-entry c "w" syntax-table))
404
405 ;; Case.
247 (setup-case-pairs 406 (setup-case-pairs
248 'latin-iso8859-15 407 'latin-iso8859-15
249 '((166 168) ;latin letter s with caron * 408 '((#xA6 #xA8) ;; S WITH CARON *
250 (180 184) ;latin letter z with caron * 409 (#xB4 #xB8) ;; Z WITH CARON *
251 (188 189) ;latin ligature oe * 410 (#xBC #xBD) ;; LATIN LIGATURE OE *
252 (190 255) ;latin letter y with diaeresis * 411 (#xBE #xFF) ;; Y WITH DIAERESIS *
253 (192 224) ;latin letter a with grave 412 (#xC0 #xE0) ;; A WITH GRAVE
254 (193 225) ;latin letter a with acute 413 (#xC1 #xE1) ;; A WITH ACUTE
255 (194 226) ;latin letter a with circumflex 414 (#xC2 #xE2) ;; A WITH CIRCUMFLEX
256 (195 227) ;latin letter a with tilde 415 (#xC3 #xE3) ;; A WITH TILDE
257 (196 228) ;latin letter a with diaeresis 416 (#xC4 #xE4) ;; A WITH DIAERESIS
258 (197 229) ;latin letter a with ring above 417 (#xC5 #xE5) ;; A WITH RING ABOVE
259 (198 230) ;latin letter ae 418 (#xC6 #xE6) ;; AE
260 (199 231) ;latin letter c with cedilla 419 (#xC7 #xE7) ;; C WITH CEDILLA
261 (200 232) ;latin letter e with grave 420 (#xC8 #xE8) ;; E WITH GRAVE
262 (201 233) ;latin letter e with acute 421 (#xC9 #xE9) ;; E WITH ACUTE
263 (202 234) ;latin letter e with circumflex 422 (#xCA #xEA) ;; E WITH CIRCUMFLEX
264 (203 235) ;latin letter e with diaeresis 423 (#xCB #xEB) ;; E WITH DIAERESIS
265 (204 236) ;latin letter i with grave 424 (#xCC #xEC) ;; I WITH GRAVE
266 (205 237) ;latin letter i with acute 425 (#xCD #xED) ;; I WITH ACUTE
267 (206 238) ;latin letter i with circumflex 426 (#xCE #xEE) ;; I WITH CIRCUMFLEX
268 (207 239) ;latin letter i with diaeresis 427 (#xCF #xEF) ;; I WITH DIAERESIS
269 (208 240) ;latin letter eth 428 (#xD0 #xF0) ;; ETH
270 (209 241) ;latin letter n with tilde 429 (#xD1 #xF1) ;; N WITH TILDE
271 (210 242) ;latin letter o with grave 430 (#xD2 #xF2) ;; O WITH GRAVE
272 (211 243) ;latin letter o with acute 431 (#xD3 #xF3) ;; O WITH ACUTE
273 (212 244) ;latin letter o with circumflex 432 (#xD4 #xF4) ;; O WITH CIRCUMFLEX
274 (213 245) ;latin letter o with tilde 433 (#xD5 #xF5) ;; O WITH TILDE
275 (214 246) ;latin letter o with diaeresis 434 (#xD6 #xF6) ;; O WITH DIAERESIS
276 (216 248) ;latin letter o with stroke 435 (#xD8 #xF8) ;; O WITH STROKE
277 (217 249) ;latin letter u with grave 436 (#xD9 #xF9) ;; U WITH GRAVE
278 (218 250) ;latin letter u with acute 437 (#xDA #xFA) ;; U WITH ACUTE
279 (219 251) ;latin letter u with circumflex 438 (#xDB #xFB) ;; U WITH CIRCUMFLEX
280 (220 252) ;latin letter u with diaeresis 439 (#xDC #xFC) ;; U WITH DIAERESIS
281 (221 253) ;latin letter y with acute 440 (#xDD #xFD) ;; Y WITH ACUTE
282 (222 254) ;latin letter thorn 441 (#xDE #xFE))) ;; THORN
283 )) 442
284 443 (make-coding-system
285 ;; ISO 8859-14, not in FSF, our mapping. 444 'iso-8859-15 'iso2022
286 (setup-case-pairs 445 "ISO 4873 conforming 8-bit code (ASCII + Latin 9; aka Latin-1 with Euro)"
287 'latin-iso8859-14 446 `(mnemonic "MIME/Ltn-9" ; bletch
288 '((161 162) ;latin letter b with dot above 447 eol-type nil
289 (164 165) ;latin letter c with dot above 448 charset-g0 ascii
290 (166 171) ;latin letter d with dot above 449 charset-g1 latin-iso8859-15
291 (168 184) ;latin letter w with grave 450 charset-g2 t
292 (170 186) ;latin letter w with acute 451 charset-g3 t))
293 (172 188) ;latin letter y with grave 452
294 (175 255) ;latin letter y with diaeresis 453 ;; end of ISO 8859-15.
295 (176 177) ;latin letter f with dot above 454
296 (178 179) ;latin letter g with dot above 455 ;;
297 (180 181) ;latin letter m with dot above 456 ;; Latin-10 (ISO 8859-16).
298 (183 185) ;latin letter p with dot above 457 ;;
299 (187 191) ;latin letter s with dot above 458 ;; "South-Eastern European." Not, to my knowledge, ever widely used.
300 (189 190) ;latin letter w with diaeresis 459
301 (192 224) ;latin letter a with grave 460 (make-charset 'latin-iso8859-16
302 (193 225) ;latin letter a with acute 461 "Right-Hand Part of Latin Alphabet 10 (ISO/IEC 8859-16)"
303 (194 226) ;latin letter a with circumflex 462 '(dimension 1
304 (195 227) ;latin letter a with tilde 463 registries ["ISO8859-16"]
305 (196 228) ;latin letter a with diaeresis 464 chars 96
306 (197 229) ;latin letter a with ring above 465 columns 1
307 (198 230) ;latin letter ae 466 direction l2r
308 (199 231) ;latin letter c with cedilla 467 final ?f ; octet 06/06; cf ISO-IR 226
309 (200 232) ;latin letter e with grave 468 graphic 1
310 (201 233) ;latin letter e with acute 469 short-name "RHP of Latin-10"
311 (202 234) ;latin letter e with circumflex 470 long-name "RHP of Latin-10 (ISO 8859-16)"))
312 (203 235) ;latin letter e with diaeresis 471
313 (204 236) ;latin letter i with grave 472 ;; Copy over the non-word syntax this charset has in common with Latin 1.
314 (205 237) ;latin letter i with acute 473 (dolist (code '(#xa0 ;; NO BREAK SPACE
315 (206 238) ;latin letter i with circumflex 474 #xa7 ;; SECTION SIGN
316 (207 239) ;latin letter i with diaeresis 475 #xa9 ;; COPYRIGHT
317 (208 240) ;latin letter w with circumflex 476 #xab ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
318 (209 241) ;latin letter n with tilde 477 #xad ;; SOFT HYPHEN
319 (210 242) ;latin letter o with grave 478 #xb0 ;; DEGREE
320 (211 243) ;latin letter o with acute 479 #xb1 ;; PLUS-MINUS SIGN
321 (212 244) ;latin letter o with circumflex 480 #xb6 ;; PILCROW SIGN
322 (213 245) ;latin letter o with tilde 481 #xb7 ;; MIDDLE DOT
323 (214 246) ;latin letter o with diaeresis 482 #xbb)) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
324 (215 247) ;latin letter t with dot above 483 (modify-syntax-entry (make-char 'latin-iso8859-16 code)
325 (216 248) ;latin letter o with stroke 484 (string (char-syntax (make-char 'latin-iso8859-1 code)))
326 (217 249) ;latin letter u with grave 485 (standard-syntax-table)))
327 (218 250) ;latin letter u with acute 486
328 (219 251) ;latin letter u with circumflex 487 ;; EURO SIGN. Take its syntax from the pound sign.
329 (220 252) ;latin letter u with diaeresis 488 (modify-syntax-entry (make-char 'latin-iso8859-16 #xa4)
330 (221 253) ;latin letter y with acute 489 (string (char-syntax (make-char 'latin-iso8859-1 #xa3)))
331 (222 254) ;latin letter y with circumflex 490 (standard-syntax-table))
332 )) 491
333 492 ;; Take DOUBLE LOW-9 QUOTATION MARK's syntax from that of LEFT-POINTING
334 ;; ISO 8859-16, not in FSF, our mapping. 493 ;; DOUBLE ANGLE QUOTATION MARK.
494 (modify-syntax-entry (make-char 'latin-iso8859-16 #xa5)
495 (string (char-syntax (make-char 'latin-iso8859-1 #xab)))
496 (standard-syntax-table))
497
498 ;; Take RIGHT DOUBLE QUOTATION MARK's syntax from that of RIGHT-POINTING
499 ;; DOUBLE ANGLE QUOTATION MARK.
500 (modify-syntax-entry (make-char 'latin-iso8859-16 #xb5)
501 (string (char-syntax (make-char 'latin-iso8859-1 #xbb)))
502 (standard-syntax-table))
503
504 ;; Case.
335 (setup-case-pairs 505 (setup-case-pairs
336 'latin-iso8859-16 506 'latin-iso8859-16
337 '((161 162) ;latin letter a with ogonek 507 '((#xA1 #xA2) ;; A WITH OGONEK
338 (163 179) ;latin letter l with stroke 508 (#xA3 #xB3) ;; L WITH STROKE
339 (166 168) ;latin letter s with caron 509 (#xA6 #xA8) ;; S WITH CARON
340 (170 186) ;latin letter s with comma below 510 (#xAA #xBA) ;; S WITH COMMA BELOW
341 (172 174) ;latin letter z with acute 511 (#xAC #xAE) ;; Z WITH ACUTE
342 (175 191) ;latin letter z with dot above 512 (#xAF #xBF) ;; Z WITH DOT ABOVE
343 (178 185) ;latin letter c with caron 513 (#xB2 #xB9) ;; C WITH CARON
344 (180 184) ;latin letter z with caron 514 (#xB4 #xB8) ;; Z WITH CARON
345 (190 255) ;latin letter y with diaeresis 515 (#xBE #xFF) ;; Y WITH DIAERESIS
346 (192 224) ;latin letter a with grave 516 (#xC0 #xE0) ;; A WITH GRAVE
347 (193 225) ;latin letter a with acute 517 (#xC1 #xE1) ;; A WITH ACUTE
348 (194 226) ;latin letter a with circumflex 518 (#xC2 #xE2) ;; A WITH CIRCUMFLEX
349 (195 227) ;latin letter a with breve 519 (#xC3 #xE3) ;; A WITH BREVE
350 (196 228) ;latin letter a with diaeresis 520 (#xC4 #xE4) ;; A WITH DIAERESIS
351 (197 229) ;latin letter c with acute 521 (#xC5 #xE5) ;; C WITH ACUTE
352 (198 230) ;latin letter ae 522 (#xC6 #xE6) ;; AE
353 (199 231) ;latin letter c with cedilla 523 (#xC7 #xE7) ;; C WITH CEDILLA
354 (200 232) ;latin letter e with grave 524 (#xC8 #xE8) ;; E WITH GRAVE
355 (201 233) ;latin letter e with acute 525 (#xC9 #xE9) ;; E WITH ACUTE
356 (202 234) ;latin letter e with circumflex 526 (#xCA #xEA) ;; E WITH CIRCUMFLEX
357 (203 235) ;latin letter e with diaeresis 527 (#xCB #xEB) ;; E WITH DIAERESIS
358 (204 236) ;latin letter i with grave 528 (#xCC #xEC) ;; I WITH GRAVE
359 (205 237) ;latin letter i with acute 529 (#xCD #xED) ;; I WITH ACUTE
360 (206 238) ;latin letter i with circumflex 530 (#xCE #xEE) ;; I WITH CIRCUMFLEX
361 (207 239) ;latin letter i with diaeresis 531 (#xCF #xEF) ;; I WITH DIAERESIS
362 (208 240) ;latin letter d with stroke 532 (#xD0 #xF0) ;; D WITH STROKE
363 (209 241) ;latin letter n with acute 533 (#xD1 #xF1) ;; N WITH ACUTE
364 (210 242) ;latin letter o with grave 534 (#xD2 #xF2) ;; O WITH GRAVE
365 (211 243) ;latin letter o with acute 535 (#xD3 #xF3) ;; O WITH ACUTE
366 (212 244) ;latin letter o with circumflex 536 (#xD4 #xF4) ;; O WITH CIRCUMFLEX
367 (213 245) ;latin letter o with double acute 537 (#xD5 #xF5) ;; O WITH DOUBLE ACUTE
368 (214 246) ;latin letter o with diaeresis 538 (#xD6 #xF6) ;; O WITH DIAERESIS
369 (215 247) ;latin letter s with acute 539 (#xD7 #xF7) ;; S WITH ACUTE
370 (216 248) ;latin letter u with double acute 540 (#xD8 #xF8) ;; U WITH DOUBLE ACUTE
371 (217 249) ;latin letter u with grave 541 (#xD9 #xF9) ;; U WITH GRAVE
372 (218 250) ;latin letter u with acute 542 (#xDA #xFA) ;; U WITH ACUTE
373 (219 251) ;latin letter u with circumflex 543 (#xDB #xFB) ;; U WITH CIRCUMFLEX
374 (220 252) ;latin letter u with diaeresis 544 (#xDC #xFC) ;; U WITH DIAERESIS
375 (221 253) ;latin letter e with ogonek 545 (#xDD #xFD) ;; E WITH OGONEK
376 (222 254) ;latin letter t with comma below 546 (#xDE #xFE))) ;; T WITH COMMA BELOW
377 )) 547
378 548 ;; Add a coding system for ISO 8859-16.
379 549 (make-coding-system
380 ;; This is our utility function; we don't want it in the dumped XEmacs. 550 'iso-8859-16 'iso2022 "MIME ISO-8859-16"
551 '(charset-g0 ascii
552 charset-g1 latin-iso8859-16
553 charset-g2 t ; grrr
554 charset-g3 t ; grrr
555 mnemonic "MIME/Ltn-10"))
556
557 ;; end of ISO 8859-16.
558
559
560 (provide 'romanian)
561
562 ;; Czech support originally from czech.el
563 ;; Author: Milan Zamazal <pdm@zamazal.org>
564 ;; Maintainer (FSF): Pavel Jan,Am(Bk <Pavel@Janik.cz>
565 ;; Maintainer (for XEmacs): David Sauer <davids@penguin.cz>
566
567 (provide 'czech)
568
569 ;; Slovak support originally from slovak.el
570 ;; Authors: Tibor ,B)(Bimko <tibor.simko@fmph.uniba.sk>,
571 ;; Milan Zamazal <pdm@fi.muni.cz>
572 ;; Maintainer: Milan Zamazal <pdm@fi.muni.cz>
573
574 (provide 'slovenian)
575
576 ;; Latin-5 (ISO-8859-9)
577
578 ;; Turkish (more generally Turkic.) This is identical to Latin-1, with the
579 ;; exception that the Icelandic-specific letters have been replaced by
580 ;; Turkish-specific letters. As such, we can simply copy the Latin-1 syntax
581 ;; table.
582
583 (loop
584 for i from #xA0 to #xFF
585 with syntax-table = (standard-syntax-table)
586 do (modify-syntax-entry
587 (make-char 'latin-iso8859-9 i)
588 (string (char-syntax (make-char 'latin-iso8859-1 i)))
589 syntax-table))
590
591 ;; Case. #### Bug: this doesn't handle I WITH DOT ABOVE.
592 (setup-case-pairs
593 'latin-iso8859-9
594 '((#xC0 #xE0) ;; A WITH GRAVE
595 (#xC1 #xE1) ;; A WITH ACUTE
596 (#xC2 #xE2) ;; A WITH CIRCUMFLEX
597 (#xC3 #xE3) ;; A WITH TILDE
598 (#xC4 #xE4) ;; A WITH DIAERESIS
599 (#xC5 #xE5) ;; A WITH RING ABOVE
600 (#xC6 #xE6) ;; AE
601 (#xC7 #xE7) ;; C WITH CEDILLA
602 (#xC8 #xE8) ;; E WITH GRAVE
603 (#xC9 #xE9) ;; E WITH ACUTE
604 (#xCB #xEB) ;; E WITH DIAERESIS
605 (#xCD #xED) ;; I WITH ACUTE
606 (#xCE #xEE) ;; I WITH CIRCUMFLEX
607 (#xD0 #xF0) ;; G WITH BREVE
608 (#xD1 #xF1) ;; N WITH TILDE
609 (#xD2 #xF2) ;; O WITH GRAVE
610 (#xD3 #xF3) ;; O WITH ACUTE
611 (#xD4 #xF4) ;; O WITH CIRCUMFLEX
612 (#xD5 #xF5) ;; O WITH TILDE
613 (#xD6 #xF6) ;; O WITH DIAERESIS
614 (#xD8 #xF8) ;; O WITH STROKE
615 (#xD9 #xF9) ;; U WITH GRAVE
616 (#xDA #xFA) ;; U WITH ACUTE
617 (#xDB #xFB) ;; U WITH CIRCUMFLEX
618 (#xDC #xFC) ;; U WITH DIAERESIS
619 (#xDE #xFE))) ;; S WITH CEDILLA
620
621 (make-coding-system
622 'iso-8859-9 'iso2022 "ISO-8859-9 (Latin-5)"
623 '(charset-g0 ascii
624 charset-g1 latin-iso8859-9
625 charset-g2 t
626 charset-g3 t
627 mnemonic "MIME/Ltn-5"))
628
629 ;; end of ISO-8859-9
630
631 ;; This is a utility function; we don't want it in the dumped XEmacs.
381 632
382 (fmakunbound 'setup-case-pairs) 633 (fmakunbound 'setup-case-pairs)
634
635
636 ;; Language environments.
637 (loop
638 for ((charset codesys default-input nice-charset-1 nice-charset-2
639 ;; supported-langs is a list if the doc string is replaced
640 ;; entirely
641 supported-langs)
642 langenvs) in
643 '(((latin-iso8859-1 iso-8859-1 "latin-1-prefix" "Latin-1" "ISO-8859-1"
644 " Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
645 Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.")
646 (("Danish" "da")
647 ("Dutch" "nl" "TUTORIAL.nl")
648 ("Faeroese")
649 ("Finnish" "fi")
650 ("French" "fr" "TUTORIAL.fr" "Bonjour, ,Ag(Ba va?")
651 ("German" "de" "TUTORIAL.de" "\
652 German (Deutsch Nord) Guten Tag
653 German (Deutsch S,A|(Bd) Gr,A|_(B Gott"
654 "german-postfix")
655 ("Icelandic" "is")
656 ("Irish" "ga")
657 ("Italian" "it")
658 ("Norwegian" "no" "TUTORIAL.no")
659 ("Portuguese" "pt" nil "Bem-vindo! Tudo bem?")
660 ("Spanish" "es" "TUTORIAL.es" ",A!(BHola!")
661 ("Swedish" "sv" "TUTORIAL.se" "Hej!")))
662 ((latin-iso8859-15 iso-8859-15 "latin-1-prefix" ;; #### FIXME
663 "Latin-9" "ISO-8859-15")
664 ())
665 ((latin-iso8859-2 iso-8859-2 "latin-2-prefix" "Latin-2" "ISO-8859-2"
666 " Albanian, Czech, English, German, Hungarian, Polish, Romanian,
667 Serbian, Croatian, Slovak, Slovene, Sorbian (upper and lower),
668 and Swedish.") ;; " added because fontification got screwed up, CVS-20061203.
669 (("Albanian" nil)
670 ("Croatian" ("hrvatski" "hr") "TUTORIAL.hr")
671 ("Czech" ("cs" "cz") "TUTORIAL.cs" "P,Bx(Bejeme v,Ba(Bm hezk,B}(B den!"
672 "latin-2-postfix")
673 ("Hungarian" ("hungarian" "hu"))
674 ("Polish" "po" "TUTORIAL.pl")
675 ("Romanian" "ro" "TUTORIAL.ro" "Bun,Bc(B ziua, bine a,B~(Bi venit!"
676 "latin-2-postfix")
677 ("Serbian" "sr")
678 ("Slovak" "sk" "TUTORIAL.sk" "Prajeme V,Ba(Bm pr,Bm(Bjemn,B}(B de,Br(B!"
679 "latin-2-postfix")
680 ("Slovenian" "sl" "TUTORIAL.sl" ",B.(Belimo vam uspe,B9(Ben dan!"
681 "latin-2-postfix")
682 ("Sorbian" nil)))
683 ((latin-iso8859-3 iso-8859-3 "latin-3-prefix" "Latin-3" "ISO-8859-3"
684 " Afrikaans, Catalan, Dutch, English, Esperanto, French, Galician,
685 German, Italian, Maltese, Spanish, and Turkish.")
686 (("Afrikaans" "af")
687 ("Catalan" ("catalan" "ca"))
688 ("Esperanto")
689 ("Galician")
690 ("Maltese")))
691 ((latin-iso8859-4 iso-8859-4 "latin-4-prefix" "Latin-4" "ISO-8859-4"
692 " Danish, English, Estonian, Finnish, German, Greenlandic, Lappish,
693 Latvian, Lithuanian, and Norwegian.")
694 (("Estonian" "et")
695 ("Greenlandic")
696 ("Lappish")
697 ("Latvian" "lv")
698 ("Lithuanian" "li")))
699 ((latin-iso8859-5 iso-8859-9 "latin-5-prefix" "Latin-5" "ISO-8859-9")
700 (("Turkish" "tr"))))
701 do
702 (set-language-info-alist
703 nice-charset-1
704 `((charset ascii ,charset)
705 (coding-system ,codesys)
706 (coding-priority ,codesys)
707 (native-coding-system ,codesys)
708 (documentation . ,(if (listp supported-langs) (car supported-langs)
709 (format "\
710 Generic language environment for %s (%s)." nice-charset-1 nice-charset-2))))
711 '("European"))
712 (loop for (name locale tutorial sample-text input-method) in langenvs
713 do
714 (set-language-info-alist
715 name
716 `((charset ascii ,charset)
717 (coding-system ,codesys)
718 (coding-priority ,codesys)
719 (native-coding-system ,codesys)
720 ,@(if locale `((locale . ,locale)))
721 ,@(if tutorial `((tutorial . ,tutorial)))
722 ,@(if sample-text `((sample-text . ,sample-text)))
723 (input-method . ,(or input-method default-input))
724 (documentation . ,(format "\
725 This language environment supports %s. " name)))
726 '("European"))))
727
728 ;;; latin.el ends here