Mercurial > hg > xemacs-beta
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 |