charsets.h revision 04b94745
1/*
2 * $XTermId: charsets.h,v 1.29 2024/02/08 08:52:16 tom Exp $
3 */
4
5/*
6 * Copyright 2023,2024 by Thomas E. Dickey
7 *
8 *                         All Rights Reserved
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining a
11 * copy of this software and associated documentation files (the
12 * "Software"), to deal in the Software without restriction, including
13 * without limitation the rights to use, copy, modify, merge, publish,
14 * distribute, sublicense, and/or sell copies of the Software, and to
15 * permit persons to whom the Software is furnished to do so, subject to
16 * the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included
19 * in all copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
25 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 *
29 * Except as contained in this notice, the name(s) of the above copyright
30 * holders shall not be used in advertising or otherwise to promote the
31 * sale, use or other dealings in this Software without prior written
32 * authorization.
33 */
34
35#ifndef included_charsets_h
36#define included_charsets_h 1
37
38/*
39 * According to
40 *  Digital ANSI-Compliant Printing Protocol
41 *  Level 2 Programming Reference Manual
42 *  EK-PPLV2-PM. B01
43 *
44 * the supplementary character sets Greek, Hebrew, Latin-5 and Latin/Cyrillic
45 * are standardized by ISO:
46 *  ISO Greek is 8859-7
47 *  ISO Hebrew is 8859-8
48 *  ISO Latin-5 is 8859-9
49 *  ISO Latin/Cyrillic is 8859-5
50 *
51 * These are derived from the data at
52 *  ftp://www.unicode.org/Public/MAPPINGS/ISO8859/
53 *
54 * Note: the "figure A-xx" comments refer to EK-PPLV2-PM.
55 */
56
57#ifndef PUA
58#define PUA(n) (0xEEEE + (n))
59#endif
60#define UNDEF  0x2426		/* rendered as a backwards "?" */
61
62/*
63 * A "codepage" is treated different from the NRC mode:  it is always enabled.
64 * Reuse the UNI() macros by temporarily setting its state.
65 */
66
67#if OPT_WIDE_CHARS
68#define begin_CODEPAGE(size) \
69	if (!(xw->flags & NATIONAL)) { \
70	    screen->utf8_nrc_mode++; \
71	}
72#define end_CODEPAGE() \
73	if (!(xw->flags & NATIONAL)) { \
74	    screen->utf8_nrc_mode--; \
75	}
76#else
77#define begin_CODEPAGE(size)	/* nothing */
78#define end_CODEPAGE()		/* nothing */
79#endif
80
81/*
82 * xterm's original implementation of NRCS in 1998 was before Unicode became
83 * prevalent.  Most of the necessary mappings could be done using definitions
84 * from X11/keysymdef.h, using ISO-8859-1 as the default.
85 */
86
87#define map_ASCII(code) \
88	switch (code) { \
89	    XXX(0xA0, UNDEF) \
90	    XXX(0xFF, UNDEF) \
91	}
92
93#define unmap_ASCII(code,dft) \
94	switch (code) { \
95	    MAP(0xA0, 0x1B) \
96	    MAP(0xFF, 0x10000) \
97	    default: dft; break; \
98	}
99
100#define map_DEC_Spec_Graphic(code) \
101	begin_CODEPAGE(94) \
102	switch (code) { \
103	    XXX(0x5F, UNDEF) \
104	    UNI(0x60, 0x0020)	/* nbsp, treat as blank */ \
105	    UNI(0x61, 0x0020)	/* reserved, treat as blank */ \
106	    UNI(0x62, 0x25AE)	/* black vertical rectangle */ \
107	    UNI(0x63, 0x215F)	/* "1/" */ \
108	    UNI(0x64, 0x0020)	/* "3/", not in Unicode, ignore */ \
109	    UNI(0x65, 0x0020)	/* "5/", not in Unicode, ignore */ \
110	    UNI(0x66, 0x0020)	/* "7/", not in Unicode, ignore */ \
111	    UNI(0x67, 0x00B0)	/* degree sign */ \
112	    UNI(0x68, 0x00B1)	/* plus-minus sign */ \
113	    UNI(0x69, 0x2192)	/* right-arrow */ \
114	    UNI(0x6A, 0x2026)	/* ellipsis */ \
115	    UNI(0x6B, 0x00F7)	/* divide by */ \
116	    UNI(0x6C, 0x2193)	/* down arrow */ \
117	    UNI(0x6D, 0x23BA)	/* bar at scan 0 */ \
118	    UNI(0x6E, 0x23BA)	/* bar at scan 1 */ \
119	    UNI(0x6F, 0x23BB)	/* bar at scan 2 */ \
120	    UNI(0x70, 0x23BB)	/* bar at scan 3 */ \
121	    UNI(0x71, 0x23BC)	/* bar at scan 4 */ \
122	    UNI(0x72, 0x23BC)	/* bar at scan 5 */ \
123	    UNI(0x73, 0x23BD)	/* bar at scan 6 */ \
124	    UNI(0x74, 0x23BD)	/* bar at scan 7 */ \
125	    UNI(0x75, 0x2080)	/* subscript 0 */ \
126	    UNI(0x76, 0x2081)	/* subscript 1 */ \
127	    UNI(0x77, 0x2082)	/* subscript 2 */ \
128	    UNI(0x78, 0x2083)	/* subscript 3 */ \
129	    UNI(0x79, 0x2084)	/* subscript 4 */ \
130	    UNI(0x7A, 0x2085)	/* subscript 5 */ \
131	    UNI(0x7B, 0x2086)	/* subscript 6 */ \
132	    UNI(0x7C, 0x2087)	/* subscript 7 */ \
133	    UNI(0x7D, 0x2088)	/* subscript 8 */ \
134	    UNI(0x7E, 0x2089)	/* subscript 9 */ \
135	} \
136	end_CODEPAGE()
137
138#define unmap_DEC_Spec_Graphic(code,dft) \
139	switch (code) { \
140	    MAP(0x5F, 0x10000) \
141	    MAP(0x60, 0x14)	/* nbsp, treat as blank */ \
142	    MAP(0x61, 0x78)	/* reserved, treat as blank */ \
143	    MAP(0x62, 0x0A)	/* black vertical rectangle */ \
144	    MAP(0x63, 0x0D)	/* "1/" */ \
145	    MAP(0x64, 0x0E)	/* "3/", not in Unicode, ignore */ \
146	    MAP(0x65, 0x0B)	/* "5/", not in Unicode, ignore */ \
147	    MAP(0x66, 0xB0)	/* "7/", not in Unicode, ignore */ \
148	    MAP(0x67, 0xB1)	/* degree sign */ \
149	    MAP(0x68, 0x15)	/* plus-minus sign */ \
150	    MAP(0x69, 0x0C)	/* right-arrow */ \
151	    MAP(0x6A, 0x16)	/* ellipsis */ \
152	    MAP(0x6B, 0x17)	/* divide by */ \
153	    MAP(0x6C, 0x18)	/* down arrow */ \
154	    MAP(0x6D, 0x19)	/* bar at scan 0 */ \
155	    MAP(0x6E, 0x1A)	/* bar at scan 1 */ \
156	    MAP(0x6F, 0x1B)	/* bar at scan 2 */ \
157	    MAP(0x70, 0x1C)	/* bar at scan 3 */ \
158	    MAP(0x71, 0x1D)	/* bar at scan 4 */ \
159	    MAP(0x72, 0x1E)	/* bar at scan 5 */ \
160	    MAP(0x73, 0x1F)	/* bar at scan 6 */ \
161	    MAP(0x74, 0x80)	/* bar at scan 7 */ \
162	    MAP(0x75, 0x81)	/* subscript 0 */ \
163	    MAP(0x76, 0x82)	/* subscript 1 */ \
164	    MAP(0x77, 0x83)	/* subscript 2 */ \
165	    MAP(0x78, 0x84)	/* subscript 3 */ \
166	    MAP(0x79, 0x85)	/* subscript 4 */ \
167	    MAP(0x7A, 0x86)	/* subscript 5 */ \
168	    MAP(0x7B, 0xC6)	/* subscript 6 */ \
169	    MAP(0x7C, 0x87)	/* subscript 7 */ \
170	    MAP(0x7D, 0xA3)	/* subscript 8 */ \
171	    MAP(0x7E, 0xB7)	/* subscript 9 */ \
172	    default: dft; break; \
173	}
174
175#define map_ISO_Latin_1(code) \
176	begin_CODEPAGE(96) \
177	switch (code) { \
178	} \
179	end_CODEPAGE()
180
181#define unmap_ISO_Latin_1(code,dft) /* nothing */
182
183#define map_NRCS_Dutch(code) \
184	switch (code) { \
185	    MAP(0x23, XK_sterling)	/* U+00A3 POUND SIGN */ \
186	    MAP(0x40, XK_threequarters)	/* U+00BE VULGAR FRACTION THREE QUARTERS */ \
187	    UNI(0x5B, 0x0133)		/* LATIN SMALL LIGATURE IJ */ \
188	    MAP(0x5C, XK_onehalf)	/* U+00BD VULGAR FRACTION ONE HALF */ \
189	    MAP(0x5D, XK_bar)		/* U+007C VERTICAL LINE */ \
190	    MAP(0x7B, XK_diaeresis)	/* U+00A8 DIAERESIS */ \
191	    UNI(0x7C, 0x0192)		/* LATIN SMALL LETTER F WITH HOOK (florin) */ \
192	    MAP(0x7D, XK_onequarter)	/* U+00BC VULGAR FRACTION ONE QUARTER */ \
193	    MAP(0x7E, XK_acute)		/* U+00B4 ACUTE ACCENT */ \
194	}
195
196#define unmap_NRCS_Dutch(code,dft) /* nothing */
197
198#define map_NRCS_Finnish(code) \
199	switch (code) { \
200	    MAP(0x5B, XK_Adiaeresis)	/* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */ \
201	    MAP(0x5C, XK_Odiaeresis)	/* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */ \
202	    MAP(0x5D, XK_Aring)		/* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */ \
203	    MAP(0x5E, XK_Udiaeresis)	/* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */ \
204	    MAP(0x60, XK_eacute)	/* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ \
205	    MAP(0x7B, XK_adiaeresis)	/* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */ \
206	    MAP(0x7C, XK_odiaeresis)	/* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */ \
207	    MAP(0x7D, XK_aring)		/* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */ \
208	    MAP(0x7E, XK_udiaeresis)	/* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */ \
209	}
210
211#define unmap_NRCS_Finnish(code,dft) /* nothing */
212
213#define map_NRCS_French(code) \
214	switch (code) { \
215	    MAP(0x23, XK_sterling)	/* U+00A3 POUND SIGN */ \
216	    MAP(0x40, XK_agrave)	/* U+00E0 LATIN SMALL LETTER A WITH GRAVE */ \
217	    MAP(0x5B, XK_degree)	/* U+00B0 DEGREE SIGN */ \
218	    MAP(0x5C, XK_ccedilla)	/* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ \
219	    MAP(0x5D, XK_section)	/* U+00A7 SECTION SIGN */ \
220	    MAP(0x7B, XK_eacute)	/* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ \
221	    MAP(0x7C, XK_ugrave)	/* U+00F9 LATIN SMALL LETTER U WITH GRAVE */ \
222	    MAP(0x7D, XK_egrave)	/* U+00E8 LATIN SMALL LETTER E WITH GRAVE */ \
223	    MAP(0x7E, XK_diaeresis)	/* U+00A8 DIAERESIS */ \
224	}
225
226#define unmap_NRCS_French(code,dft) /* nothing */
227
228#define map_NRCS_French_Canadian(code) \
229	switch (code) { \
230	    MAP(0x40, XK_agrave)	/* U+00E0 LATIN SMALL LETTER A WITH GRAVE */ \
231	    MAP(0x5B, XK_acircumflex)	/* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */ \
232	    MAP(0x5C, XK_ccedilla)	/* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ \
233	    MAP(0x5D, XK_ecircumflex)	/* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */ \
234	    MAP(0x5E, XK_icircumflex)	/* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
235	    MAP(0x60, XK_ocircumflex)	/* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
236	    MAP(0x7B, XK_eacute)	/* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ \
237	    MAP(0x7C, XK_ugrave)	/* U+00F9 LATIN SMALL LETTER U WITH GRAVE */ \
238	    MAP(0x7D, XK_egrave)	/* U+00E8 LATIN SMALL LETTER E WITH GRAVE */ \
239	    MAP(0x7E, XK_ucircumflex)	/* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */ \
240	}
241
242#define unmap_NRCS_French_Canadian(code,dft) /* nothing */
243
244#define map_NRCS_German(code) \
245	switch (code) { \
246	    MAP(0x40, XK_section)	/* U+00A7 SECTION SIGN */ \
247	    MAP(0x5B, XK_Adiaeresis)	/* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */ \
248	    MAP(0x5C, XK_Odiaeresis)	/* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */ \
249	    MAP(0x5D, XK_Udiaeresis)	/* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */ \
250	    MAP(0x7B, XK_adiaeresis)	/* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */ \
251	    MAP(0x7C, XK_odiaeresis)	/* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */ \
252	    MAP(0x7D, XK_udiaeresis)	/* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */ \
253	    MAP(0x7E, XK_ssharp)	/* U+00DF LATIN SMALL LETTER SHARP S */ \
254	}
255
256#define unmap_NRCS_German(code,dft) /* nothing */
257
258#define map_NRCS_Italian(code) \
259	switch (code) { \
260	    MAP(0x23, XK_sterling)	/* U+00A3 POUND SIGN */ \
261	    MAP(0x40, XK_section)	/* U+00A7 SECTION SIGN */ \
262	    MAP(0x5B, XK_degree)	/* U+00B0 DEGREE SIGN */ \
263	    MAP(0x5C, XK_ccedilla)	/* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ \
264	    MAP(0x5D, XK_eacute)	/* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ \
265	    MAP(0x60, XK_ugrave)	/* U+00F9 LATIN SMALL LETTER U WITH GRAVE */ \
266	    MAP(0x7B, XK_agrave)	/* U+00E0 LATIN SMALL LETTER A WITH GRAVE */ \
267	    MAP(0x7C, XK_ograve)	/* U+00F2 LATIN SMALL LETTER O WITH GRAVE */ \
268	    MAP(0x7D, XK_egrave)	/* U+00E8 LATIN SMALL LETTER E WITH GRAVE */ \
269	    MAP(0x7E, XK_igrave)	/* U+00EC LATIN SMALL LETTER I WITH GRAVE */ \
270	}
271
272#define unmap_NRCS_Italian(code,dft) /* nothing */
273
274#define map_NRCS_Norwegian_Danish(code) \
275	switch (code) { \
276	    MAP(0x40, XK_Adiaeresis)	/* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */ \
277	    MAP(0x5B, XK_AE)		/* U+00C6 LATIN CAPITAL LETTER AE */ \
278	    MAP(0x5C, XK_Ooblique)	/* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */ \
279	    MAP(0x5D, XK_Aring)		/* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */ \
280	    MAP(0x5E, XK_Udiaeresis)	/* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */ \
281	    MAP(0x60, XK_adiaeresis)	/* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */ \
282	    MAP(0x7B, XK_ae)		/* U+00E6 LATIN SMALL LETTER AE */ \
283	    MAP(0x7C, XK_oslash)	/* U+00F8 LATIN SMALL LETTER O WITH STROKE */ \
284	    MAP(0x7D, XK_aring)		/* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */ \
285	    MAP(0x7E, XK_udiaeresis)	/* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */ \
286	}
287
288#define unmap_NRCS_Norwegian_Danish(code,dft) /* nothing */
289
290#define map_NRCS_Portuguese(code) \
291	switch (code) { \
292	    MAP(0x5B, XK_Atilde)	/* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */ \
293	    MAP(0x5C, XK_Ccedilla)	/* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */ \
294	    MAP(0x5D, XK_Otilde)	/* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */ \
295	    MAP(0x7B, XK_atilde)	/* U+00E3 LATIN SMALL LETTER A WITH TILDE */ \
296	    MAP(0x7C, XK_ccedilla)	/* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ \
297	    MAP(0x7D, XK_otilde)	/* U+00F5 LATIN SMALL LETTER O WITH TILDE */ \
298	}
299
300#define unmap_NRCS_Portuguese(code,dft) /* nothing */
301
302#define map_NRCS_Spanish(code) \
303	switch (code) { \
304	    MAP(0x23, XK_sterling)	/* U+00A3 POUND SIGN */ \
305	    MAP(0x40, XK_section)	/* U+00A7 SECTION SIGN */ \
306	    MAP(0x5B, XK_exclamdown)	/* U+00A1 INVERTED EXCLAMATION MARK */ \
307	    MAP(0x5C, XK_Ntilde)	/* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */ \
308	    MAP(0x5D, XK_questiondown)	/* U+00BF INVERTED QUESTION MARK */ \
309	    MAP(0x7B, XK_degree)	/* U+00B0 DEGREE SIGN */ \
310	    MAP(0x7C, XK_ntilde)	/* U+00F1 LATIN SMALL LETTER N WITH TILDE */ \
311	    MAP(0x7D, XK_ccedilla)	/* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ \
312	}
313
314#define unmap_NRCS_Spanish(code,dft) /* nothing */
315
316#define map_NRCS_Swedish(code) \
317	switch (code) { \
318	    MAP(0x40, XK_Eacute) \
319	    MAP(0x5B, XK_Adiaeresis)	/* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */ \
320	    MAP(0x5C, XK_Odiaeresis)	/* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */ \
321	    MAP(0x5D, XK_Aring)		/* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */ \
322	    MAP(0x5E, XK_Udiaeresis)	/* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */ \
323	    MAP(0x60, XK_eacute)	/* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ \
324	    MAP(0x7B, XK_adiaeresis)	/* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */ \
325	    MAP(0x7C, XK_odiaeresis)	/* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */ \
326	    MAP(0x7D, XK_aring)		/* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */ \
327	    MAP(0x7E, XK_udiaeresis)	/* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */ \
328	}
329
330#define unmap_NRCS_Swedish(code,dft) /* nothing */
331
332#define map_NRCS_Swiss(code) \
333	switch (code) { \
334	    MAP(0x23, XK_ugrave)	/* U+00F9 LATIN SMALL LETTER U WITH GRAVE */ \
335	    MAP(0x40, XK_agrave)	/* U+00E0 LATIN SMALL LETTER A WITH GRAVE */ \
336	    MAP(0x5B, XK_eacute)	/* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ \
337	    MAP(0x5C, XK_ccedilla)	/* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ \
338	    MAP(0x5D, XK_ecircumflex)	/* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */ \
339	    MAP(0x5E, XK_icircumflex)	/* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
340	    MAP(0x5F, XK_egrave)	/* U+00E8 LATIN SMALL LETTER E WITH GRAVE */ \
341	    MAP(0x60, XK_ocircumflex)	/* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
342	    MAP(0x7B, XK_adiaeresis)	/* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */ \
343	    MAP(0x7C, XK_odiaeresis)	/* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */ \
344	    MAP(0x7D, XK_udiaeresis)	/* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */ \
345	    MAP(0x7E, XK_ucircumflex)	/* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */ \
346	}
347
348#define unmap_NRCS_Swiss(code,dft) /* nothing */
349
350/*
351 * Unlike NRCS, which splices a few characters onto ISO-8859-1, the
352 * supplementary character sets are complete, normally mapped to GR.  Most of
353 * these mappings rely upon glyphs not found in ISO-8859-1.  We can display most
354 * of those using Unicode, thereby supporting specialized applications that use
355 * SCS with luit, subject to the limitation that select/paste will give
356 * meaningless results in terms of the application which uses these mappings.
357 *
358 * Since the codepages introduced with VT320, etc, use 8-bit encodings, there is
359 * no plausible argument to be made that these mappings "use" UTF-8, even though
360 * there is a hidden step in the terminal emulator which relies upon UTF-8.
361 */
362
363#define map_DEC_Supp_Graphic(code,dft) \
364	begin_CODEPAGE(94) \
365	switch (code) { \
366	    XXX(0x24, UNDEF) \
367	    XXX(0x26, UNDEF) \
368	    UNI(0x28, 0x00A4)	/* CURRENCY SIGN */ \
369	    XXX(0x2C, UNDEF) \
370	    XXX(0x2D, UNDEF) \
371	    XXX(0x2E, UNDEF) \
372	    XXX(0x2F, UNDEF) \
373	    XXX(0x34, UNDEF) \
374	    XXX(0x38, UNDEF) \
375	    XXX(0x3E, UNDEF) \
376	    XXX(0x50, UNDEF) \
377	    UNI(0x57, 0x0152)	/* LATIN CAPITAL LIGATURE OE */ \
378	    UNI(0x5D, 0x0178)	/* LATIN CAPITAL LETTER Y WITH DIAERESIS */ \
379	    XXX(0x5E, UNDEF) \
380	    UNI(0x5F, 0x005F) \
381	    XXX(0x70, UNDEF) \
382	    UNI(0x77, 0x0153)	/* LATIN SMALL LIGATURE OE */ \
383	    UNI(0x7D, 0x00FF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
384	    XXX(0x7E, UNDEF) \
385	    default: dft; break; \
386	} \
387	end_CODEPAGE()
388
389#define unmap_DEC_Supp_Graphic(code,dft) \
390	switch (code) { \
391	    MAP(0x24, 0x1B) \
392	    MAP(0x26, 0x1B) \
393	    MAP(0x28, 0xA4)	/* CURRENCY SIGN */ \
394	    MAP(0x2C, 0x1B) \
395	    MAP(0x2D, 0x1B) \
396	    MAP(0x2E, 0x1B) \
397	    MAP(0x2F, 0x1B) \
398	    MAP(0x34, 0x1B) \
399	    MAP(0x38, 0x1B) \
400	    MAP(0x3E, 0x1B) \
401	    MAP(0x50, 0x1B) \
402	    MAP(0x57, 0x97)	/* LATIN CAPITAL LIGATURE OE */ \
403	    MAP(0x5D, 0x98)	/* LATIN CAPITAL LETTER Y WITH DIAERESIS */ \
404	    MAP(0x5E, 0x1B) \
405	    MAP(0x5F, 0xDF) \
406	    MAP(0x70, 0x1B) \
407	    MAP(0x77, 0x99)	/* LATIN SMALL LIGATURE OE */ \
408	    MAP(0x7D, 0xFF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
409	    MAP(0x7E, 0x1B) \
410	    default: dft; break; \
411	}
412
413#if OPT_WIDE_CHARS
414
415/*
416 * derived from http://www.vt100.net/charsets/technical.html
417 */
418#define map_DEC_Technical(code) \
419	begin_CODEPAGE(94) \
420	switch (code) { \
421	    UNI(0x21, 0x23B7)	/* RADICAL SYMBOL BOTTOM Centred left to right, so that it joins up with 02/02 */ \
422	    UNI(0x22, 0x250C)	/* BOX DRAWINGS LIGHT DOWN AND RIGHT */ \
423	    UNI(0x23, 0x2500)	/* BOX DRAWINGS LIGHT HORIZONTAL */ \
424	    UNI(0x24, 0x2320)	/* TOP HALF INTEGRAL with the proviso that the stem is vertical, to join with 02/06 */ \
425	    UNI(0x25, 0x2321)	/* BOTTOM HALF INTEGRAL with the proviso above. */ \
426	    UNI(0x26, 0x2502)	/* BOX DRAWINGS LIGHT VERTICAL */ \
427	    UNI(0x27, 0x23A1)	/* LEFT SQUARE BRACKET UPPER CORNER Joins vertically to 02/06, 02/08. Doesn't join to its right. */ \
428	    UNI(0x28, 0x23A3)	/* LEFT SQUARE BRACKET LOWER CORNER Joins vertically to 02/06, 02/07. Doesn't join to its right. */ \
429	    UNI(0x29, 0x23A4)	/* RIGHT SQUARE BRACKET UPPER CORNER Joins vertically to 026, 02a. Doesn't join to its left. */ \
430	    UNI(0x2A, 0x23A6)	/* RIGHT SQUARE BRACKET LOWER CORNER Joins vertically to 026, 029. Doesn't join to its left. */ \
431	    UNI(0x2B, 0x23A7)	/* LEFT CURLY BRACKET UPPER HOOK Joins vertically to 026, 02c, 02/15. Doesn't join to its right. */ \
432	    UNI(0x2C, 0x23A9)	/* LEFT CURLY BRACKET LOWER HOOK Joins vertically to 026, 02b, 02/15. Doesn't join to its right. */ \
433	    UNI(0x2D, 0x23AB)	/* RIGHT CURLY BRACKET UPPER HOOK Joins vertically to 026, 02e, 03/00. Doesn't join to its left. */ \
434	    UNI(0x2E, 0x23AD)	/* RIGHT CURLY BRACKET LOWER HOOK Joins vertically to 026, 02d, 03/00. Doesn't join to its left. */ \
435	    UNI(0x2F, 0x23A8)	/* LEFT CURLY BRACKET MIDDLE PIECE Joins vertically to 026, 02b, 02c. */ \
436	    UNI(0x30, 0x23AC)	/* RIGHT CURLY BRACKET MIDDLE PIECE Joins vertically to 02/06, 02d, 02e. */ \
437	    XXX(0x31, PUA(0))	/* Top Left Sigma. Joins to right with 02/03, 03/05. Joins diagonally below right with 03/03, 03/07. */ \
438	    XXX(0x32, PUA(1))	/* Bottom Left Sigma. Joins to right with 02/03, 03/06. Joins diagonally above right with 03/04, 03/07. */ \
439	    XXX(0x33, PUA(2))	/* Top Diagonal Sigma. Line for joining 03/01 to 03/04 or 03/07. */ \
440	    XXX(0x34, PUA(3))	/* Bottom Diagonal Sigma. Line for joining 03/02 to 03/03 or 03/07. */ \
441	    XXX(0x35, PUA(4))	/* Top Right Sigma. Joins to left with 02/03, 03/01. */ \
442	    XXX(0x36, PUA(5))	/* Bottom Right Sigma. Joins to left with 02/03, 03/02. */ \
443	    XXX(0x37, PUA(6))	/* Middle Sigma. Joins diagonally with 03/01, 03/02, 03/03, 03/04. */ \
444	    XXX(0x38, UNDEF)	/* undefined */ \
445	    XXX(0x39, UNDEF)	/* undefined */ \
446	    XXX(0x3A, UNDEF)	/* undefined */ \
447	    XXX(0x3B, UNDEF)	/* undefined */ \
448	    UNI(0x3C, 0x2264)	/* LESS-THAN OR EQUAL TO */ \
449	    UNI(0x3D, 0x2260)	/* NOT EQUAL TO */ \
450	    UNI(0x3E, 0x2265)	/* GREATER-THAN OR EQUAL TO */ \
451	    UNI(0x3F, 0x222B)	/* INTEGRAL */ \
452	    UNI(0x40, 0x2234)	/* THEREFORE */ \
453	    UNI(0x41, 0x221D)	/* PROPORTIONAL TO */ \
454	    UNI(0x42, 0x221E)	/* INFINITY */ \
455	    UNI(0x43, 0x00F7)	/* DIVISION SIGN */ \
456	    UNI(0x44, 0x0394)	/* GREEK CAPITAL DELTA */ \
457	    UNI(0x45, 0x2207)	/* NABLA */ \
458	    UNI(0x46, 0x03A6)	/* GREEK CAPITAL LETTER PHI */ \
459	    UNI(0x47, 0x0393)	/* GREEK CAPITAL LETTER GAMMA */ \
460	    UNI(0x48, 0x223C)	/* TILDE OPERATOR */ \
461	    UNI(0x49, 0x2243)	/* ASYMPTOTICALLY EQUAL TO */ \
462	    UNI(0x4A, 0x0398)	/* GREEK CAPITAL LETTER THETA */ \
463	    UNI(0x4B, 0x00D7)	/* MULTIPLICATION SIGN */ \
464	    UNI(0x4C, 0x039B)	/* GREEK CAPITAL LETTER LAMDA */ \
465	    UNI(0x4D, 0x21D4)	/* LEFT RIGHT DOUBLE ARROW */ \
466	    UNI(0x4E, 0x21D2)	/* RIGHTWARDS DOUBLE ARROW */ \
467	    UNI(0x4F, 0x2261)	/* IDENTICAL TO */ \
468	    UNI(0x50, 0x03A0)	/* GREEK CAPITAL LETTER PI */ \
469	    UNI(0x51, 0x03A8)	/* GREEK CAPITAL LETTER PSI */ \
470	    XXX(0x52, UNDEF)	/* undefined */ \
471	    UNI(0x53, 0x03A3)	/* GREEK CAPITAL LETTER SIGMA */ \
472	    XXX(0x54, UNDEF)	/* undefined */ \
473	    XXX(0x55, UNDEF)	/* undefined */ \
474	    UNI(0x56, 0x221A)	/* SQUARE ROOT */ \
475	    UNI(0x57, 0x03A9)	/* GREEK CAPITAL LETTER OMEGA */ \
476	    UNI(0x58, 0x039E)	/* GREEK CAPITAL LETTER XI */ \
477	    UNI(0x59, 0x03A5)	/* GREEK CAPITAL LETTER UPSILON */ \
478	    UNI(0x5A, 0x2282)	/* SUBSET OF */ \
479	    UNI(0x5B, 0x2283)	/* SUPERSET OF */ \
480	    UNI(0x5C, 0x2229)	/* INTERSECTION */ \
481	    UNI(0x5D, 0x222A)	/* UNION */ \
482	    UNI(0x5E, 0x2227)	/* LOGICAL AND */ \
483	    UNI(0x5F, 0x2228)	/* LOGICAL OR */ \
484	    UNI(0x60, 0x00AC)	/* NOT SIGN */ \
485	    UNI(0x61, 0x03B1)	/* GREEK SMALL LETTER ALPHA */ \
486	    UNI(0x62, 0x03B2)	/* GREEK SMALL LETTER BETA */ \
487	    UNI(0x63, 0x03C7)	/* GREEK SMALL LETTER CHI */ \
488	    UNI(0x64, 0x03B4)	/* GREEK SMALL LETTER DELTA */ \
489	    UNI(0x65, 0x03B5)	/* GREEK SMALL LETTER EPSILON */ \
490	    UNI(0x66, 0x03C6)	/* GREEK SMALL LETTER PHI */ \
491	    UNI(0x67, 0x03B3)	/* GREEK SMALL LETTER GAMMA */ \
492	    UNI(0x68, 0x03B7)	/* GREEK SMALL LETTER ETA */ \
493	    UNI(0x69, 0x03B9)	/* GREEK SMALL LETTER IOTA */ \
494	    UNI(0x6A, 0x03B8)	/* GREEK SMALL LETTER THETA */ \
495	    UNI(0x6B, 0x03BA)	/* GREEK SMALL LETTER KAPPA */ \
496	    UNI(0x6C, 0x03BB)	/* GREEK SMALL LETTER LAMDA */ \
497	    XXX(0x6D, UNDEF)	/* undefined */ \
498	    UNI(0x6E, 0x03BD)	/* GREEK SMALL LETTER NU */ \
499	    UNI(0x6F, 0x2202)	/* PARTIAL DIFFERENTIAL */ \
500	    UNI(0x70, 0x03C0)	/* GREEK SMALL LETTER PI */ \
501	    UNI(0x71, 0x03C8)	/* GREEK SMALL LETTER PSI */ \
502	    UNI(0x72, 0x03C1)	/* GREEK SMALL LETTER RHO */ \
503	    UNI(0x73, 0x03C3)	/* GREEK SMALL LETTER SIGMA */ \
504	    UNI(0x74, 0x03C4)	/* GREEK SMALL LETTER TAU */ \
505	    XXX(0x75, UNDEF)	/* undefined */ \
506	    UNI(0x76, 0x0192)	/* LATIN SMALL LETTER F WITH HOOK Probably chosen for its meaning of "function" */ \
507	    UNI(0x77, 0x03C9)	/* GREEK SMALL LETTER OMEGA */ \
508	    UNI(0x78, 0x03BE)	/* GREEK SMALL LETTER XI */ \
509	    UNI(0x79, 0x03C5)	/* GREEK SMALL LETTER UPSILON */ \
510	    UNI(0x7A, 0x03B6)	/* GREEK SMALL LETTER ZETA */ \
511	    UNI(0x7B, 0x2190)	/* LEFTWARDS ARROW */ \
512	    UNI(0x7C, 0x2191)	/* UPWARDS ARROW */ \
513	    UNI(0x7D, 0x2192)	/* RIGHTWARDS ARROW */ \
514	    UNI(0x7E, 0x2193)	/* DOWNWARDS ARROW */ \
515	} \
516	end_CODEPAGE()
517
518#define unmap_DEC_Technical(code,dft) \
519	switch (code) { \
520	    MAP(0x21, 0xD5)	/* RADICAL SYMBOL BOTTOM Centred left to right, so that it joins up with 02/02 */ \
521	    MAP(0x22, 0xD6)	/* BOX DRAWINGS LIGHT DOWN AND RIGHT */ \
522	    MAP(0x23, 0x1D)	/* BOX DRAWINGS LIGHT HORIZONTAL */ \
523	    MAP(0x24, 0xD7)	/* TOP HALF INTEGRAL with the proviso that the stem is vertical, to join with 02/06 */ \
524	    MAP(0x25, 0xD8)	/* BOTTOM HALF INTEGRAL with the proviso above. */ \
525	    MAP(0x26, 0x84)	/* BOX DRAWINGS LIGHT VERTICAL */ \
526	    MAP(0x27, 0xD9)	/* LEFT SQUARE BRACKET UPPER CORNER Joins vertically to 02/06, 02/08. Doesn't join to its right. */ \
527	    MAP(0x28, 0xDA)	/* LEFT SQUARE BRACKET LOWER CORNER Joins vertically to 02/06, 02/07. Doesn't join to its right. */ \
528	    MAP(0x29, 0xDB)	/* RIGHT SQUARE BRACKET UPPER CORNER Joins vertically to 026, 02a. Doesn't join to its left. */ \
529	    MAP(0x2A, 0xDC)	/* RIGHT SQUARE BRACKET LOWER CORNER Joins vertically to 026, 029. Doesn't join to its left. */ \
530	    MAP(0x2B, 0xDD)	/* LEFT CURLY BRACKET UPPER HOOK Joins vertically to 026, 02c, 02/15. Doesn't join to its right. */ \
531	    MAP(0x2C, 0xDE)	/* LEFT CURLY BRACKET LOWER HOOK Joins vertically to 026, 02b, 02/15. Doesn't join to its right. */ \
532	    MAP(0x2D, 0xDF)	/* RIGHT CURLY BRACKET UPPER HOOK Joins vertically to 026, 02e, 03/00. Doesn't join to its left. */ \
533	    MAP(0x2E, 0xE0)	/* RIGHT CURLY BRACKET LOWER HOOK Joins vertically to 026, 02d, 03/00. Doesn't join to its left. */ \
534	    MAP(0x2F, 0xE1)	/* LEFT CURLY BRACKET MIDDLE PIECE Joins vertically to 026, 02b, 02c. */ \
535	    MAP(0x30, 0xE2)	/* RIGHT CURLY BRACKET MIDDLE PIECE Joins vertically to 02/06, 02d, 02e. */ \
536	    MAP(0x31, 0xE3)	/* Top Left Sigma. Joins to right with 02/03, 03/05. Joins diagonally below right with 03/03, 03/07. */ \
537	    MAP(0x32, 0xE4)	/* Bottom Left Sigma. Joins to right with 02/03, 03/06. Joins diagonally above right with 03/04, 03/07. */ \
538	    MAP(0x33, 0xE5)	/* Top Diagonal Sigma. Line for joining 03/01 to 03/04 or 03/07. */ \
539	    MAP(0x34, 0xE6)	/* Bottom Diagonal Sigma. Line for joining 03/02 to 03/03 or 03/07. */ \
540	    MAP(0x35, 0xE7)	/* Top Right Sigma. Joins to left with 02/03, 03/01. */ \
541	    MAP(0x36, 0xE8)	/* Bottom Right Sigma. Joins to left with 02/03, 03/02. */ \
542	    MAP(0x37, 0xE9)	/* Middle Sigma. Joins diagonally with 03/01, 03/02, 03/03, 03/04. */ \
543	    MAP(0x38, 0x1B)	/* undefined */ \
544	    MAP(0x39, 0x1B)	/* undefined */ \
545	    MAP(0x3A, 0x1B)	/* undefined */ \
546	    MAP(0x3B, 0x1B)	/* undefined */ \
547	    MAP(0x3C, 0x85)	/* LESS-THAN OR EQUAL TO */ \
548	    MAP(0x3D, 0x87)	/* NOT EQUAL TO */ \
549	    MAP(0x3E, 0x86)	/* GREATER-THAN OR EQUAL TO */ \
550	    MAP(0x3F, 0xEA)	/* INTEGRAL */ \
551	    MAP(0x40, 0xEB)	/* THEREFORE */ \
552	    MAP(0x41, 0xEC)	/* PROPORTIONAL TO */ \
553	    MAP(0x42, 0xED)	/* INFINITY */ \
554	    MAP(0x43, 0xF7)	/* DIVISION SIGN */ \
555	    MAP(0x44, 0xEE)	/* GREEK CAPITAL DELTA */ \
556	    MAP(0x45, 0xEF)	/* NABLA */ \
557	    MAP(0x46, 0xAC)	/* GREEK CAPITAL LETTER PHI */ \
558	    MAP(0x47, 0x78)	/* GREEK CAPITAL LETTER GAMMA */ \
559	    MAP(0x48, 0xF0)	/* TILDE OPERATOR */ \
560	    MAP(0x49, 0xF1)	/* ASYMPTOTICALLY EQUAL TO */ \
561	    MAP(0x4A, 0x7D)	/* GREEK CAPITAL LETTER THETA */ \
562	    MAP(0x4B, 0xD7)	/* MULTIPLICATION SIGN */ \
563	    MAP(0x4C, 0xA2)	/* GREEK CAPITAL LETTER LAMDA */ \
564	    MAP(0x4D, 0xF2)	/* LEFT RIGHT DOUBLE ARROW */ \
565	    MAP(0x4E, 0xF3)	/* RIGHTWARDS DOUBLE ARROW */ \
566	    MAP(0x4F, 0xF4)	/* IDENTICAL TO */ \
567	    MAP(0x50, 0xA7)	/* GREEK CAPITAL LETTER PI */ \
568	    MAP(0x51, 0xAE)	/* GREEK CAPITAL LETTER PSI */ \
569	    MAP(0x52, 0x1B)	/* undefined */ \
570	    MAP(0x53, 0xA9)	/* GREEK CAPITAL LETTER SIGMA */ \
571	    MAP(0x54, 0x1B)	/* undefined */ \
572	    MAP(0x55, 0x1B)	/* undefined */ \
573	    MAP(0x56, 0xF5)	/* SQUARE ROOT */ \
574	    MAP(0x57, 0xAF)	/* GREEK CAPITAL LETTER OMEGA */ \
575	    MAP(0x58, 0xA5)	/* GREEK CAPITAL LETTER XI */ \
576	    MAP(0x59, 0xAB)	/* GREEK CAPITAL LETTER UPSILON */ \
577	    MAP(0x5A, 0xF6)	/* SUBSET OF */ \
578	    MAP(0x5B, 0xF7)	/* SUPERSET OF */ \
579	    MAP(0x5C, 0xF8)	/* INTERSECTION */ \
580	    MAP(0x5D, 0xF9)	/* UNION */ \
581	    MAP(0x5E, 0xFA)	/* LOGICAL AND */ \
582	    MAP(0x5F, 0xFB)	/* LOGICAL OR */ \
583	    MAP(0x60, 0xAC)	/* NOT SIGN */ \
584	    MAP(0x61, 0xB7)	/* GREEK SMALL LETTER ALPHA */ \
585	    MAP(0x62, 0xB8)	/* GREEK SMALL LETTER BETA */ \
586	    MAP(0x63, 0xCD)	/* GREEK SMALL LETTER CHI */ \
587	    MAP(0x64, 0xBA)	/* GREEK SMALL LETTER DELTA */ \
588	    MAP(0x65, 0xBB)	/* GREEK SMALL LETTER EPSILON */ \
589	    MAP(0x66, 0xCC)	/* GREEK SMALL LETTER PHI */ \
590	    MAP(0x67, 0xB9)	/* GREEK SMALL LETTER GAMMA */ \
591	    MAP(0x68, 0xBD)	/* GREEK SMALL LETTER ETA */ \
592	    MAP(0x69, 0xBF)	/* GREEK SMALL LETTER IOTA */ \
593	    MAP(0x6A, 0xBE)	/* GREEK SMALL LETTER THETA */ \
594	    MAP(0x6B, 0xC0)	/* GREEK SMALL LETTER KAPPA */ \
595	    MAP(0x6C, 0xC1)	/* GREEK SMALL LETTER LAMDA */ \
596	    MAP(0x6D, 0x1B)	/* undefined */ \
597	    MAP(0x6E, 0xC3)	/* GREEK SMALL LETTER NU */ \
598	    MAP(0x6F, 0xFC)	/* PARTIAL DIFFERENTIAL */ \
599	    MAP(0x70, 0xC6)	/* GREEK SMALL LETTER PI */ \
600	    MAP(0x71, 0xCE)	/* GREEK SMALL LETTER PSI */ \
601	    MAP(0x72, 0xC7)	/* GREEK SMALL LETTER RHO */ \
602	    MAP(0x73, 0xC9)	/* GREEK SMALL LETTER SIGMA */ \
603	    MAP(0x74, 0xCA)	/* GREEK SMALL LETTER TAU */ \
604	    MAP(0x75, 0x1B)	/* undefined */ \
605	    MAP(0x76, 0xFD)	/* LATIN SMALL LETTER F WITH HOOK Probably chosen for its meaning of "function" */ \
606	    MAP(0x77, 0xCF)	/* GREEK SMALL LETTER OMEGA */ \
607	    MAP(0x78, 0xC4)	/* GREEK SMALL LETTER XI */ \
608	    MAP(0x79, 0xCB)	/* GREEK SMALL LETTER UPSILON */ \
609	    MAP(0x7A, 0xBC)	/* GREEK SMALL LETTER ZETA */ \
610	    MAP(0x7B, 0xFE)	/* LEFTWARDS ARROW */ \
611	    MAP(0x7C, 0xFF)	/* UPWARDS ARROW */ \
612	    MAP(0x7D, 0x100)	/* RIGHTWARDS ARROW */ \
613	    MAP(0x7E, 0x02)	/* DOWNWARDS ARROW */ \
614	    default: dft; break; \
615	}
616
617/*
618 * ISO Latin/Cyrillic is 8859-5
619 */
620#define map_ISO_Latin_Cyrillic(code) \
621	begin_CODEPAGE(96) \
622	switch (code) { \
623	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
624	    UNI(0x21, 0x0401)	/* CYRILLIC CAPITAL LETTER IO */ \
625	    UNI(0x22, 0x0402)	/* CYRILLIC CAPITAL LETTER DJE */ \
626	    UNI(0x23, 0x0403)	/* CYRILLIC CAPITAL LETTER GJE */ \
627	    UNI(0x24, 0x0404)	/* CYRILLIC CAPITAL LETTER UKRAINIAN IE */ \
628	    UNI(0x25, 0x0405)	/* CYRILLIC CAPITAL LETTER DZE */ \
629	    UNI(0x26, 0x0406)	/* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ \
630	    UNI(0x27, 0x0407)	/* CYRILLIC CAPITAL LETTER YI */ \
631	    UNI(0x28, 0x0408)	/* CYRILLIC CAPITAL LETTER JE */ \
632	    UNI(0x29, 0x0409)	/* CYRILLIC CAPITAL LETTER LJE */ \
633	    UNI(0x2A, 0x040A)	/* CYRILLIC CAPITAL LETTER NJE */ \
634	    UNI(0x2B, 0x040B)	/* CYRILLIC CAPITAL LETTER TSHE */ \
635	    UNI(0x2C, 0x040C)	/* CYRILLIC CAPITAL LETTER KJE */ \
636	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
637	    UNI(0x2E, 0x040E)	/* CYRILLIC CAPITAL LETTER SHORT U */ \
638	    UNI(0x2F, 0x040F)	/* CYRILLIC CAPITAL LETTER DZHE */ \
639	    UNI(0x30, 0x0410)	/* CYRILLIC CAPITAL LETTER A */ \
640	    UNI(0x31, 0x0411)	/* CYRILLIC CAPITAL LETTER BE */ \
641	    UNI(0x32, 0x0412)	/* CYRILLIC CAPITAL LETTER VE */ \
642	    UNI(0x33, 0x0413)	/* CYRILLIC CAPITAL LETTER GHE */ \
643	    UNI(0x34, 0x0414)	/* CYRILLIC CAPITAL LETTER DE */ \
644	    UNI(0x35, 0x0415)	/* CYRILLIC CAPITAL LETTER IE */ \
645	    UNI(0x36, 0x0416)	/* CYRILLIC CAPITAL LETTER ZHE */ \
646	    UNI(0x37, 0x0417)	/* CYRILLIC CAPITAL LETTER ZE */ \
647	    UNI(0x38, 0x0418)	/* CYRILLIC CAPITAL LETTER I */ \
648	    UNI(0x39, 0x0419)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
649	    UNI(0x3A, 0x041A)	/* CYRILLIC CAPITAL LETTER KA */ \
650	    UNI(0x3B, 0x041B)	/* CYRILLIC CAPITAL LETTER EL */ \
651	    UNI(0x3C, 0x041C)	/* CYRILLIC CAPITAL LETTER EM */ \
652	    UNI(0x3D, 0x041D)	/* CYRILLIC CAPITAL LETTER EN */ \
653	    UNI(0x3E, 0x041E)	/* CYRILLIC CAPITAL LETTER O */ \
654	    UNI(0x3F, 0x041F)	/* CYRILLIC CAPITAL LETTER PE */ \
655	    UNI(0x40, 0x0420)	/* CYRILLIC CAPITAL LETTER ER */ \
656	    UNI(0x41, 0x0421)	/* CYRILLIC CAPITAL LETTER ES */ \
657	    UNI(0x42, 0x0422)	/* CYRILLIC CAPITAL LETTER TE */ \
658	    UNI(0x43, 0x0423)	/* CYRILLIC CAPITAL LETTER U */ \
659	    UNI(0x44, 0x0424)	/* CYRILLIC CAPITAL LETTER EF */ \
660	    UNI(0x45, 0x0425)	/* CYRILLIC CAPITAL LETTER HA */ \
661	    UNI(0x46, 0x0426)	/* CYRILLIC CAPITAL LETTER TSE */ \
662	    UNI(0x47, 0x0427)	/* CYRILLIC CAPITAL LETTER CHE */ \
663	    UNI(0x48, 0x0428)	/* CYRILLIC CAPITAL LETTER SHA */ \
664	    UNI(0x49, 0x0429)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
665	    UNI(0x4A, 0x042A)	/* CYRILLIC CAPITAL LETTER HARD SIGN */ \
666	    UNI(0x4B, 0x042B)	/* CYRILLIC CAPITAL LETTER YERU */ \
667	    UNI(0x4C, 0x042C)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
668	    UNI(0x4D, 0x042D)	/* CYRILLIC CAPITAL LETTER E */ \
669	    UNI(0x4E, 0x042E)	/* CYRILLIC CAPITAL LETTER YU */ \
670	    UNI(0x4F, 0x042F)	/* CYRILLIC CAPITAL LETTER YA */ \
671	    UNI(0x50, 0x0430)	/* CYRILLIC SMALL LETTER A */ \
672	    UNI(0x51, 0x0431)	/* CYRILLIC SMALL LETTER BE */ \
673	    UNI(0x52, 0x0432)	/* CYRILLIC SMALL LETTER VE */ \
674	    UNI(0x53, 0x0433)	/* CYRILLIC SMALL LETTER GHE */ \
675	    UNI(0x54, 0x0434)	/* CYRILLIC SMALL LETTER DE */ \
676	    UNI(0x55, 0x0435)	/* CYRILLIC SMALL LETTER IE */ \
677	    UNI(0x56, 0x0436)	/* CYRILLIC SMALL LETTER ZHE */ \
678	    UNI(0x57, 0x0437)	/* CYRILLIC SMALL LETTER ZE */ \
679	    UNI(0x58, 0x0438)	/* CYRILLIC SMALL LETTER I */ \
680	    UNI(0x59, 0x0439)	/* CYRILLIC SMALL LETTER SHORT I */ \
681	    UNI(0x5A, 0x043A)	/* CYRILLIC SMALL LETTER KA */ \
682	    UNI(0x5B, 0x043B)	/* CYRILLIC SMALL LETTER EL */ \
683	    UNI(0x5C, 0x043C)	/* CYRILLIC SMALL LETTER EM */ \
684	    UNI(0x5D, 0x043D)	/* CYRILLIC SMALL LETTER EN */ \
685	    UNI(0x5E, 0x043E)	/* CYRILLIC SMALL LETTER O */ \
686	    UNI(0x5F, 0x043F)	/* CYRILLIC SMALL LETTER PE */ \
687	    UNI(0x60, 0x0440)	/* CYRILLIC SMALL LETTER ER */ \
688	    UNI(0x61, 0x0441)	/* CYRILLIC SMALL LETTER ES */ \
689	    UNI(0x62, 0x0442)	/* CYRILLIC SMALL LETTER TE */ \
690	    UNI(0x63, 0x0443)	/* CYRILLIC SMALL LETTER U */ \
691	    UNI(0x64, 0x0444)	/* CYRILLIC SMALL LETTER EF */ \
692	    UNI(0x65, 0x0445)	/* CYRILLIC SMALL LETTER HA */ \
693	    UNI(0x66, 0x0446)	/* CYRILLIC SMALL LETTER TSE */ \
694	    UNI(0x67, 0x0447)	/* CYRILLIC SMALL LETTER CHE */ \
695	    UNI(0x68, 0x0448)	/* CYRILLIC SMALL LETTER SHA */ \
696	    UNI(0x69, 0x0449)	/* CYRILLIC SMALL LETTER SHCHA */ \
697	    UNI(0x6A, 0x044A)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
698	    UNI(0x6B, 0x044B)	/* CYRILLIC SMALL LETTER YERU */ \
699	    UNI(0x6C, 0x044C)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
700	    UNI(0x6D, 0x044D)	/* CYRILLIC SMALL LETTER E */ \
701	    UNI(0x6E, 0x044E)	/* CYRILLIC SMALL LETTER YU */ \
702	    UNI(0x6F, 0x044F)	/* CYRILLIC SMALL LETTER YA */ \
703	    UNI(0x70, 0x2116)	/* NUMERO SIGN */ \
704	    UNI(0x71, 0x0451)	/* CYRILLIC SMALL LETTER IO */ \
705	    UNI(0x72, 0x0452)	/* CYRILLIC SMALL LETTER DJE */ \
706	    UNI(0x73, 0x0453)	/* CYRILLIC SMALL LETTER GJE */ \
707	    UNI(0x74, 0x0454)	/* CYRILLIC SMALL LETTER UKRAINIAN IE */ \
708	    UNI(0x75, 0x0455)	/* CYRILLIC SMALL LETTER DZE */ \
709	    UNI(0x76, 0x0456)	/* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ \
710	    UNI(0x77, 0x0457)	/* CYRILLIC SMALL LETTER YI */ \
711	    UNI(0x78, 0x0458)	/* CYRILLIC SMALL LETTER JE */ \
712	    UNI(0x79, 0x0459)	/* CYRILLIC SMALL LETTER LJE */ \
713	    UNI(0x7A, 0x045A)	/* CYRILLIC SMALL LETTER NJE */ \
714	    UNI(0x7B, 0x045B)	/* CYRILLIC SMALL LETTER TSHE */ \
715	    UNI(0x7C, 0x045C)	/* CYRILLIC SMALL LETTER KJE */ \
716	    UNI(0x7D, 0x00A7)	/* SECTION SIGN */ \
717	    UNI(0x7E, 0x045E)	/* CYRILLIC SMALL LETTER SHORT U */ \
718	    UNI(0x7F, 0x045F)	/* CYRILLIC SMALL LETTER DZHE */ \
719	} \
720	end_CODEPAGE()
721
722#define unmap_ISO_Latin_Cyrillic(code,dft) \
723	switch (code) { \
724	    MAP(0x21, 0x03)	/* CYRILLIC CAPITAL LETTER IO */ \
725	    MAP(0x22, 0x04)	/* CYRILLIC CAPITAL LETTER DJE */ \
726	    MAP(0x23, 0x05)	/* CYRILLIC CAPITAL LETTER GJE */ \
727	    MAP(0x24, 0x06)	/* CYRILLIC CAPITAL LETTER UKRAINIAN IE */ \
728	    MAP(0x25, 0x07)	/* CYRILLIC CAPITAL LETTER DZE */ \
729	    MAP(0x26, 0x08)	/* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ \
730	    MAP(0x27, 0x09)	/* CYRILLIC CAPITAL LETTER YI */ \
731	    MAP(0x28, 0x0A)	/* CYRILLIC CAPITAL LETTER JE */ \
732	    MAP(0x29, 0x0B)	/* CYRILLIC CAPITAL LETTER LJE */ \
733	    MAP(0x2A, 0x0C)	/* CYRILLIC CAPITAL LETTER NJE */ \
734	    MAP(0x2B, 0x0D)	/* CYRILLIC CAPITAL LETTER TSHE */ \
735	    MAP(0x2C, 0x0E)	/* CYRILLIC CAPITAL LETTER KJE */ \
736	    MAP(0x2E, 0x0F)	/* CYRILLIC CAPITAL LETTER SHORT U */ \
737	    MAP(0x2F, 0x10)	/* CYRILLIC CAPITAL LETTER DZHE */ \
738	    MAP(0x30, 0x11)	/* CYRILLIC CAPITAL LETTER A */ \
739	    MAP(0x31, 0x12)	/* CYRILLIC CAPITAL LETTER BE */ \
740	    MAP(0x32, 0x13)	/* CYRILLIC CAPITAL LETTER VE */ \
741	    MAP(0x33, 0x14)	/* CYRILLIC CAPITAL LETTER GHE */ \
742	    MAP(0x34, 0x15)	/* CYRILLIC CAPITAL LETTER DE */ \
743	    MAP(0x35, 0x16)	/* CYRILLIC CAPITAL LETTER IE */ \
744	    MAP(0x36, 0x17)	/* CYRILLIC CAPITAL LETTER ZHE */ \
745	    MAP(0x37, 0x18)	/* CYRILLIC CAPITAL LETTER ZE */ \
746	    MAP(0x38, 0x19)	/* CYRILLIC CAPITAL LETTER I */ \
747	    MAP(0x39, 0x1A)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
748	    MAP(0x3A, 0x1B)	/* CYRILLIC CAPITAL LETTER KA */ \
749	    MAP(0x3B, 0x1C)	/* CYRILLIC CAPITAL LETTER EL */ \
750	    MAP(0x3C, 0x1D)	/* CYRILLIC CAPITAL LETTER EM */ \
751	    MAP(0x3D, 0x1E)	/* CYRILLIC CAPITAL LETTER EN */ \
752	    MAP(0x3E, 0x1F)	/* CYRILLIC CAPITAL LETTER O */ \
753	    MAP(0x3F, 0x20)	/* CYRILLIC CAPITAL LETTER PE */ \
754	    MAP(0x40, 0x21)	/* CYRILLIC CAPITAL LETTER ER */ \
755	    MAP(0x41, 0x22)	/* CYRILLIC CAPITAL LETTER ES */ \
756	    MAP(0x42, 0x23)	/* CYRILLIC CAPITAL LETTER TE */ \
757	    MAP(0x43, 0x24)	/* CYRILLIC CAPITAL LETTER U */ \
758	    MAP(0x44, 0x25)	/* CYRILLIC CAPITAL LETTER EF */ \
759	    MAP(0x45, 0x26)	/* CYRILLIC CAPITAL LETTER HA */ \
760	    MAP(0x46, 0x27)	/* CYRILLIC CAPITAL LETTER TSE */ \
761	    MAP(0x47, 0x28)	/* CYRILLIC CAPITAL LETTER CHE */ \
762	    MAP(0x48, 0x29)	/* CYRILLIC CAPITAL LETTER SHA */ \
763	    MAP(0x49, 0x2A)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
764	    MAP(0x4A, 0x2B)	/* CYRILLIC CAPITAL LETTER HARD SIGN */ \
765	    MAP(0x4B, 0x2C)	/* CYRILLIC CAPITAL LETTER YERU */ \
766	    MAP(0x4C, 0x2D)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
767	    MAP(0x4D, 0x2E)	/* CYRILLIC CAPITAL LETTER E */ \
768	    MAP(0x4E, 0x2F)	/* CYRILLIC CAPITAL LETTER YU */ \
769	    MAP(0x4F, 0x30)	/* CYRILLIC CAPITAL LETTER YA */ \
770	    MAP(0x50, 0x31)	/* CYRILLIC SMALL LETTER A */ \
771	    MAP(0x51, 0x32)	/* CYRILLIC SMALL LETTER BE */ \
772	    MAP(0x52, 0x33)	/* CYRILLIC SMALL LETTER VE */ \
773	    MAP(0x53, 0x34)	/* CYRILLIC SMALL LETTER GHE */ \
774	    MAP(0x54, 0x35)	/* CYRILLIC SMALL LETTER DE */ \
775	    MAP(0x55, 0x36)	/* CYRILLIC SMALL LETTER IE */ \
776	    MAP(0x56, 0x37)	/* CYRILLIC SMALL LETTER ZHE */ \
777	    MAP(0x57, 0x38)	/* CYRILLIC SMALL LETTER ZE */ \
778	    MAP(0x58, 0x39)	/* CYRILLIC SMALL LETTER I */ \
779	    MAP(0x59, 0x3A)	/* CYRILLIC SMALL LETTER SHORT I */ \
780	    MAP(0x5A, 0x3B)	/* CYRILLIC SMALL LETTER KA */ \
781	    MAP(0x5B, 0x3C)	/* CYRILLIC SMALL LETTER EL */ \
782	    MAP(0x5C, 0x3D)	/* CYRILLIC SMALL LETTER EM */ \
783	    MAP(0x5D, 0x3E)	/* CYRILLIC SMALL LETTER EN */ \
784	    MAP(0x5E, 0x3F)	/* CYRILLIC SMALL LETTER O */ \
785	    MAP(0x5F, 0x40)	/* CYRILLIC SMALL LETTER PE */ \
786	    MAP(0x60, 0x41)	/* CYRILLIC SMALL LETTER ER */ \
787	    MAP(0x61, 0x42)	/* CYRILLIC SMALL LETTER ES */ \
788	    MAP(0x62, 0x43)	/* CYRILLIC SMALL LETTER TE */ \
789	    MAP(0x63, 0x44)	/* CYRILLIC SMALL LETTER U */ \
790	    MAP(0x64, 0x45)	/* CYRILLIC SMALL LETTER EF */ \
791	    MAP(0x65, 0x46)	/* CYRILLIC SMALL LETTER HA */ \
792	    MAP(0x66, 0x47)	/* CYRILLIC SMALL LETTER TSE */ \
793	    MAP(0x67, 0x48)	/* CYRILLIC SMALL LETTER CHE */ \
794	    MAP(0x68, 0x49)	/* CYRILLIC SMALL LETTER SHA */ \
795	    MAP(0x69, 0x4A)	/* CYRILLIC SMALL LETTER SHCHA */ \
796	    MAP(0x6A, 0x4B)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
797	    MAP(0x6B, 0x4C)	/* CYRILLIC SMALL LETTER YERU */ \
798	    MAP(0x6C, 0x4D)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
799	    MAP(0x6D, 0x4E)	/* CYRILLIC SMALL LETTER E */ \
800	    MAP(0x6E, 0x4F)	/* CYRILLIC SMALL LETTER YU */ \
801	    MAP(0x6F, 0x50)	/* CYRILLIC SMALL LETTER YA */ \
802	    MAP(0x70, 0x51)	/* NUMERO SIGN */ \
803	    MAP(0x71, 0x52)	/* CYRILLIC SMALL LETTER IO */ \
804	    MAP(0x72, 0x53)	/* CYRILLIC SMALL LETTER DJE */ \
805	    MAP(0x73, 0x54)	/* CYRILLIC SMALL LETTER GJE */ \
806	    MAP(0x74, 0x55)	/* CYRILLIC SMALL LETTER UKRAINIAN IE */ \
807	    MAP(0x75, 0x56)	/* CYRILLIC SMALL LETTER DZE */ \
808	    MAP(0x76, 0x57)	/* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ \
809	    MAP(0x77, 0x58)	/* CYRILLIC SMALL LETTER YI */ \
810	    MAP(0x78, 0x59)	/* CYRILLIC SMALL LETTER JE */ \
811	    MAP(0x79, 0x5A)	/* CYRILLIC SMALL LETTER LJE */ \
812	    MAP(0x7A, 0x5B)	/* CYRILLIC SMALL LETTER NJE */ \
813	    MAP(0x7B, 0x5C)	/* CYRILLIC SMALL LETTER TSHE */ \
814	    MAP(0x7C, 0x5D)	/* CYRILLIC SMALL LETTER KJE */ \
815	    MAP(0x7D, 0xA7)	/* SECTION SIGN */ \
816	    MAP(0x7E, 0x5E)	/* CYRILLIC SMALL LETTER SHORT U */ \
817	    MAP(0x7F, 0x5F)	/* CYRILLIC SMALL LETTER DZHE */ \
818	    default: dft; break; \
819	}
820
821/*
822 * ISO Greek is 8859-7
823 */
824#define map_ISO_Greek_Supp(code) \
825	begin_CODEPAGE(96) \
826	switch (code) { \
827	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
828	    UNI(0x21, 0x2018)	/* LEFT SINGLE QUOTATION MARK */ \
829	    UNI(0x22, 0x2019)	/* RIGHT SINGLE QUOTATION MARK */ \
830	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
831	    XXX(0x24, UNDEF)	/* undefined */ \
832	    XXX(0x25, UNDEF)	/* undefined */ \
833	    UNI(0x26, 0x00A6)	/* BROKEN BAR */ \
834	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
835	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
836	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
837	    XXX(0x2A, UNDEF)	/* undefined */ \
838	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
839	    UNI(0x2C, 0x00AC)	/* NOT SIGN */ \
840	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
841	    XXX(0x2E, UNDEF)	/* undefined */ \
842	    UNI(0x2F, 0x2015)	/* HORIZONTAL BAR */ \
843	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
844	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
845	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
846	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
847	    UNI(0x34, 0x0384)	/* GREEK TONOS */ \
848	    UNI(0x35, 0x0385)	/* GREEK DIALYTIKA TONOS */ \
849	    UNI(0x36, 0x0386)	/* GREEK CAPITAL LETTER ALPHA WITH TONOS */ \
850	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
851	    UNI(0x38, 0x0388)	/* GREEK CAPITAL LETTER EPSILON WITH TONOS */ \
852	    UNI(0x39, 0x0389)	/* GREEK CAPITAL LETTER ETA WITH TONOS */ \
853	    UNI(0x3A, 0x038A)	/* GREEK CAPITAL LETTER IOTA WITH TONOS */ \
854	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
855	    UNI(0x3C, 0x038C)	/* GREEK CAPITAL LETTER OMICRON WITH TONOS */ \
856	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
857	    UNI(0x3E, 0x038E)	/* GREEK CAPITAL LETTER UPSILON WITH TONOS */ \
858	    UNI(0x3F, 0x038F)	/* GREEK CAPITAL LETTER OMEGA WITH TONOS */ \
859	    UNI(0x40, 0x0390)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ \
860	    UNI(0x41, 0x0391)	/* GREEK CAPITAL LETTER ALPHA */ \
861	    UNI(0x42, 0x0392)	/* GREEK CAPITAL LETTER BETA */ \
862	    UNI(0x43, 0x0393)	/* GREEK CAPITAL LETTER GAMMA */ \
863	    UNI(0x44, 0x0394)	/* GREEK CAPITAL LETTER DELTA */ \
864	    UNI(0x45, 0x0395)	/* GREEK CAPITAL LETTER EPSILON */ \
865	    UNI(0x46, 0x0396)	/* GREEK CAPITAL LETTER ZETA */ \
866	    UNI(0x47, 0x0397)	/* GREEK CAPITAL LETTER ETA */ \
867	    UNI(0x48, 0x0398)	/* GREEK CAPITAL LETTER THETA */ \
868	    UNI(0x49, 0x0399)	/* GREEK CAPITAL LETTER IOTA */ \
869	    UNI(0x4A, 0x039A)	/* GREEK CAPITAL LETTER KAPPA */ \
870	    UNI(0x4B, 0x039B)	/* GREEK CAPITAL LETTER LAMDA */ \
871	    UNI(0x4C, 0x039C)	/* GREEK CAPITAL LETTER MU */ \
872	    UNI(0x4D, 0x039D)	/* GREEK CAPITAL LETTER NU */ \
873	    UNI(0x4E, 0x039E)	/* GREEK CAPITAL LETTER XI */ \
874	    UNI(0x4F, 0x039F)	/* GREEK CAPITAL LETTER OMICRON */ \
875	    UNI(0x50, 0x03A0)	/* GREEK CAPITAL LETTER PI */ \
876	    UNI(0x51, 0x03A1)	/* GREEK CAPITAL LETTER RHO */ \
877	    XXX(0x52, UNDEF)	/* undefined */ \
878	    UNI(0x53, 0x03A3)	/* GREEK CAPITAL LETTER SIGMA */ \
879	    UNI(0x54, 0x03A4)	/* GREEK CAPITAL LETTER TAU */ \
880	    UNI(0x55, 0x03A5)	/* GREEK CAPITAL LETTER UPSILON */ \
881	    UNI(0x56, 0x03A6)	/* GREEK CAPITAL LETTER PHI */ \
882	    UNI(0x57, 0x03A7)	/* GREEK CAPITAL LETTER CHI */ \
883	    UNI(0x58, 0x03A8)	/* GREEK CAPITAL LETTER PSI */ \
884	    UNI(0x59, 0x03A9)	/* GREEK CAPITAL LETTER OMEGA */ \
885	    UNI(0x5A, 0x03AA)	/* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ \
886	    UNI(0x5B, 0x03AB)	/* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ \
887	    UNI(0x5C, 0x03AC)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
888	    UNI(0x5D, 0x03AD)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
889	    UNI(0x5E, 0x03AE)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
890	    UNI(0x5F, 0x03AF)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
891	    UNI(0x60, 0x03B0)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ \
892	    UNI(0x61, 0x03B1)	/* GREEK SMALL LETTER ALPHA */ \
893	    UNI(0x62, 0x03B2)	/* GREEK SMALL LETTER BETA */ \
894	    UNI(0x63, 0x03B3)	/* GREEK SMALL LETTER GAMMA */ \
895	    UNI(0x64, 0x03B4)	/* GREEK SMALL LETTER DELTA */ \
896	    UNI(0x65, 0x03B5)	/* GREEK SMALL LETTER EPSILON */ \
897	    UNI(0x66, 0x03B6)	/* GREEK SMALL LETTER ZETA */ \
898	    UNI(0x67, 0x03B7)	/* GREEK SMALL LETTER ETA */ \
899	    UNI(0x68, 0x03B8)	/* GREEK SMALL LETTER THETA */ \
900	    UNI(0x69, 0x03B9)	/* GREEK SMALL LETTER IOTA */ \
901	    UNI(0x6A, 0x03BA)	/* GREEK SMALL LETTER KAPPA */ \
902	    UNI(0x6B, 0x03BB)	/* GREEK SMALL LETTER LAMDA */ \
903	    UNI(0x6C, 0x03BC)	/* GREEK SMALL LETTER MU */ \
904	    UNI(0x6D, 0x03BD)	/* GREEK SMALL LETTER NU */ \
905	    UNI(0x6E, 0x03BE)	/* GREEK SMALL LETTER XI */ \
906	    UNI(0x6F, 0x03BF)	/* GREEK SMALL LETTER OMICRON */ \
907	    UNI(0x70, 0x03C0)	/* GREEK SMALL LETTER PI */ \
908	    UNI(0x71, 0x03C1)	/* GREEK SMALL LETTER RHO */ \
909	    UNI(0x72, 0x03C2)	/* GREEK SMALL LETTER FINAL SIGMA */ \
910	    UNI(0x73, 0x03C3)	/* GREEK SMALL LETTER SIGMA */ \
911	    UNI(0x74, 0x03C4)	/* GREEK SMALL LETTER TAU */ \
912	    UNI(0x75, 0x03C5)	/* GREEK SMALL LETTER UPSILON */ \
913	    UNI(0x76, 0x03C6)	/* GREEK SMALL LETTER PHI */ \
914	    UNI(0x77, 0x03C7)	/* GREEK SMALL LETTER CHI */ \
915	    UNI(0x78, 0x03C8)	/* GREEK SMALL LETTER PSI */ \
916	    UNI(0x79, 0x03C9)	/* GREEK SMALL LETTER OMEGA */ \
917	    UNI(0x7A, 0x03CA)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
918	    UNI(0x7B, 0x03CB)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
919	    UNI(0x7C, 0x03CC)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
920	    UNI(0x7D, 0x03CD)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
921	    UNI(0x7E, 0x03CE)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
922	    XXX(0x7F, UNDEF)	/* undefined */ \
923	} \
924	end_CODEPAGE()
925
926#define unmap_ISO_Greek_Supp(code,dft) \
927	switch (code) { \
928	    MAP(0x21, 0x60)	/* LEFT SINGLE QUOTATION MARK */ \
929	    MAP(0x22, 0x27)	/* RIGHT SINGLE QUOTATION MARK */ \
930	    MAP(0x24, 0x1B)	/* undefined */ \
931	    MAP(0x25, 0x1B)	/* undefined */ \
932	    MAP(0x2A, 0x1B)	/* undefined */ \
933	    MAP(0x2E, 0x1B)	/* undefined */ \
934	    MAP(0x2F, 0x2D)	/* HORIZONTAL BAR */ \
935	    MAP(0x34, 0x96)	/* GREEK TONOS */ \
936	    MAP(0x35, 0x95)	/* GREEK DIALYTIKA TONOS */ \
937	    MAP(0x36, 0x6E)	/* GREEK CAPITAL LETTER ALPHA WITH TONOS */ \
938	    MAP(0x38, 0x6F)	/* GREEK CAPITAL LETTER EPSILON WITH TONOS */ \
939	    MAP(0x39, 0x70)	/* GREEK CAPITAL LETTER ETA WITH TONOS */ \
940	    MAP(0x3A, 0x71)	/* GREEK CAPITAL LETTER IOTA WITH TONOS */ \
941	    MAP(0x3C, 0x72)	/* GREEK CAPITAL LETTER OMICRON WITH TONOS */ \
942	    MAP(0x3E, 0x73)	/* GREEK CAPITAL LETTER UPSILON WITH TONOS */ \
943	    MAP(0x3F, 0x74)	/* GREEK CAPITAL LETTER OMEGA WITH TONOS */ \
944	    MAP(0x40, 0x75)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ \
945	    MAP(0x41, 0x76)	/* GREEK CAPITAL LETTER ALPHA */ \
946	    MAP(0x42, 0x77)	/* GREEK CAPITAL LETTER BETA */ \
947	    MAP(0x43, 0x78)	/* GREEK CAPITAL LETTER GAMMA */ \
948	    MAP(0x44, 0x79)	/* GREEK CAPITAL LETTER DELTA */ \
949	    MAP(0x45, 0x7A)	/* GREEK CAPITAL LETTER EPSILON */ \
950	    MAP(0x46, 0x7B)	/* GREEK CAPITAL LETTER ZETA */ \
951	    MAP(0x47, 0x7C)	/* GREEK CAPITAL LETTER ETA */ \
952	    MAP(0x48, 0x7D)	/* GREEK CAPITAL LETTER THETA */ \
953	    MAP(0x49, 0x7E)	/* GREEK CAPITAL LETTER IOTA */ \
954	    MAP(0x4A, 0x7F)	/* GREEK CAPITAL LETTER KAPPA */ \
955	    MAP(0x4B, 0xA2)	/* GREEK CAPITAL LETTER LAMDA */ \
956	    MAP(0x4C, 0xA3)	/* GREEK CAPITAL LETTER MU */ \
957	    MAP(0x4D, 0xA4)	/* GREEK CAPITAL LETTER NU */ \
958	    MAP(0x4E, 0xA5)	/* GREEK CAPITAL LETTER XI */ \
959	    MAP(0x4F, 0xA6)	/* GREEK CAPITAL LETTER OMICRON */ \
960	    MAP(0x50, 0xA7)	/* GREEK CAPITAL LETTER PI */ \
961	    MAP(0x51, 0xA8)	/* GREEK CAPITAL LETTER RHO */ \
962	    MAP(0x52, 0x1B)	/* undefined */ \
963	    MAP(0x53, 0xA9)	/* GREEK CAPITAL LETTER SIGMA */ \
964	    MAP(0x54, 0xAA)	/* GREEK CAPITAL LETTER TAU */ \
965	    MAP(0x55, 0xAB)	/* GREEK CAPITAL LETTER UPSILON */ \
966	    MAP(0x56, 0xAC)	/* GREEK CAPITAL LETTER PHI */ \
967	    MAP(0x57, 0xAD)	/* GREEK CAPITAL LETTER CHI */ \
968	    MAP(0x58, 0xAE)	/* GREEK CAPITAL LETTER PSI */ \
969	    MAP(0x59, 0xAF)	/* GREEK CAPITAL LETTER OMEGA */ \
970	    MAP(0x5A, 0xB0)	/* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ \
971	    MAP(0x5B, 0xB1)	/* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ \
972	    MAP(0x5C, 0xB2)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
973	    MAP(0x5D, 0xB3)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
974	    MAP(0x5E, 0xB4)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
975	    MAP(0x5F, 0xB5)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
976	    MAP(0x60, 0xB6)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ \
977	    MAP(0x61, 0xB7)	/* GREEK SMALL LETTER ALPHA */ \
978	    MAP(0x62, 0xB8)	/* GREEK SMALL LETTER BETA */ \
979	    MAP(0x63, 0xB9)	/* GREEK SMALL LETTER GAMMA */ \
980	    MAP(0x64, 0xBA)	/* GREEK SMALL LETTER DELTA */ \
981	    MAP(0x65, 0xBB)	/* GREEK SMALL LETTER EPSILON */ \
982	    MAP(0x66, 0xBC)	/* GREEK SMALL LETTER ZETA */ \
983	    MAP(0x67, 0xBD)	/* GREEK SMALL LETTER ETA */ \
984	    MAP(0x68, 0xBE)	/* GREEK SMALL LETTER THETA */ \
985	    MAP(0x69, 0xBF)	/* GREEK SMALL LETTER IOTA */ \
986	    MAP(0x6A, 0xC0)	/* GREEK SMALL LETTER KAPPA */ \
987	    MAP(0x6B, 0xC1)	/* GREEK SMALL LETTER LAMDA */ \
988	    MAP(0x6C, 0xC2)	/* GREEK SMALL LETTER MU */ \
989	    MAP(0x6D, 0xC3)	/* GREEK SMALL LETTER NU */ \
990	    MAP(0x6E, 0xC4)	/* GREEK SMALL LETTER XI */ \
991	    MAP(0x6F, 0xC5)	/* GREEK SMALL LETTER OMICRON */ \
992	    MAP(0x70, 0xC6)	/* GREEK SMALL LETTER PI */ \
993	    MAP(0x71, 0xC7)	/* GREEK SMALL LETTER RHO */ \
994	    MAP(0x72, 0xC8)	/* GREEK SMALL LETTER FINAL SIGMA */ \
995	    MAP(0x73, 0xC9)	/* GREEK SMALL LETTER SIGMA */ \
996	    MAP(0x74, 0xCA)	/* GREEK SMALL LETTER TAU */ \
997	    MAP(0x75, 0xCB)	/* GREEK SMALL LETTER UPSILON */ \
998	    MAP(0x76, 0xCC)	/* GREEK SMALL LETTER PHI */ \
999	    MAP(0x77, 0xCD)	/* GREEK SMALL LETTER CHI */ \
1000	    MAP(0x78, 0xCE)	/* GREEK SMALL LETTER PSI */ \
1001	    MAP(0x79, 0xCF)	/* GREEK SMALL LETTER OMEGA */ \
1002	    MAP(0x7A, 0xD0)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
1003	    MAP(0x7B, 0xD1)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
1004	    MAP(0x7C, 0xD2)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
1005	    MAP(0x7D, 0xD3)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
1006	    MAP(0x7E, 0xD4)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
1007	    MAP(0x7F, 0x1B)	/* undefined */ \
1008	    default: dft; break; \
1009	}
1010
1011/*
1012 * figure A-23 "ISO Latin-Hebrew Supplemental Character Set"
1013 */
1014#define map_ISO_Hebrew(code) \
1015	begin_CODEPAGE(96) \
1016	switch (code) { \
1017	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
1018	    XXX(0x21, UNDEF)	/* undefined */ \
1019	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
1020	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
1021	    UNI(0x24, 0x00A4)	/* CURRENCY SIGN */ \
1022	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
1023	    UNI(0x26, 0x00A6)	/* BROKEN BAR */ \
1024	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
1025	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
1026	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
1027	    UNI(0x2A, 0x00D7)	/* MULTIPLICATION SIGN */ \
1028	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1029	    UNI(0x2C, 0x00AC)	/* NOT SIGN */ \
1030	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
1031	    UNI(0x2E, 0x00AE)	/* REGISTERED SIGN */ \
1032	    UNI(0x2F, 0x00AF)	/* MACRON */ \
1033	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
1034	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
1035	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
1036	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
1037	    UNI(0x34, 0x00B4)	/* ACUTE ACCENT */ \
1038	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
1039	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
1040	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
1041	    UNI(0x38, 0x00B8)	/* CEDILLA */ \
1042	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
1043	    UNI(0x3A, 0x00F7)	/* DIVISION SIGN */ \
1044	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1045	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
1046	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
1047	    UNI(0x3E, 0x00BE)	/* VULGAR FRACTION THREE QUARTERS */ \
1048	    XXX(0x3F, UNDEF)	/* undefined */ \
1049	    XXX(0x40, UNDEF)	/* undefined */ \
1050	    XXX(0x41, UNDEF)	/* undefined */ \
1051	    XXX(0x42, UNDEF)	/* undefined */ \
1052	    XXX(0x43, UNDEF)	/* undefined */ \
1053	    XXX(0x44, UNDEF)	/* undefined */ \
1054	    XXX(0x45, UNDEF)	/* undefined */ \
1055	    XXX(0x46, UNDEF)	/* undefined */ \
1056	    XXX(0x47, UNDEF)	/* undefined */ \
1057	    XXX(0x48, UNDEF)	/* undefined */ \
1058	    XXX(0x49, UNDEF)	/* undefined */ \
1059	    XXX(0x4A, UNDEF)	/* undefined */ \
1060	    XXX(0x4B, UNDEF)	/* undefined */ \
1061	    XXX(0x4C, UNDEF)	/* undefined */ \
1062	    XXX(0x4D, UNDEF)	/* undefined */ \
1063	    XXX(0x4E, UNDEF)	/* undefined */ \
1064	    XXX(0x4F, UNDEF)	/* undefined */ \
1065	    XXX(0x50, UNDEF)	/* undefined */ \
1066	    XXX(0x51, UNDEF)	/* undefined */ \
1067	    XXX(0x52, UNDEF)	/* undefined */ \
1068	    XXX(0x53, UNDEF)	/* undefined */ \
1069	    XXX(0x54, UNDEF)	/* undefined */ \
1070	    XXX(0x55, UNDEF)	/* undefined */ \
1071	    XXX(0x56, UNDEF)	/* undefined */ \
1072	    XXX(0x57, UNDEF)	/* undefined */ \
1073	    XXX(0x58, UNDEF)	/* undefined */ \
1074	    XXX(0x59, UNDEF)	/* undefined */ \
1075	    XXX(0x5A, UNDEF)	/* undefined */ \
1076	    XXX(0x5B, UNDEF)	/* undefined */ \
1077	    XXX(0x5C, UNDEF)	/* undefined */ \
1078	    XXX(0x5D, UNDEF)	/* undefined */ \
1079	    XXX(0x5E, UNDEF)	/* undefined */ \
1080	    UNI(0x5F, 0x2017)	/* DOUBLE LOW LINE */ \
1081	    UNI(0x60, 0x05D0)	/* HEBREW LETTER ALEF */ \
1082	    UNI(0x61, 0x05D1)	/* HEBREW LETTER BET */ \
1083	    UNI(0x62, 0x05D2)	/* HEBREW LETTER GIMEL */ \
1084	    UNI(0x63, 0x05D3)	/* HEBREW LETTER DALET */ \
1085	    UNI(0x64, 0x05D4)	/* HEBREW LETTER HE */ \
1086	    UNI(0x65, 0x05D5)	/* HEBREW LETTER VAV */ \
1087	    UNI(0x66, 0x05D6)	/* HEBREW LETTER ZAYIN */ \
1088	    UNI(0x67, 0x05D7)	/* HEBREW LETTER HET */ \
1089	    UNI(0x68, 0x05D8)	/* HEBREW LETTER TET */ \
1090	    UNI(0x69, 0x05D9)	/* HEBREW LETTER YOD */ \
1091	    UNI(0x6A, 0x05DA)	/* HEBREW LETTER FINAL KAF */ \
1092	    UNI(0x6B, 0x05DB)	/* HEBREW LETTER KAF */ \
1093	    UNI(0x6C, 0x05DC)	/* HEBREW LETTER LAMED */ \
1094	    UNI(0x6D, 0x05DD)	/* HEBREW LETTER FINAL MEM */ \
1095	    UNI(0x6E, 0x05DE)	/* HEBREW LETTER MEM */ \
1096	    UNI(0x6F, 0x05DF)	/* HEBREW LETTER FINAL NUN */ \
1097	    UNI(0x70, 0x05E0)	/* HEBREW LETTER NUN */ \
1098	    UNI(0x71, 0x05E1)	/* HEBREW LETTER SAMEKH */ \
1099	    UNI(0x72, 0x05E2)	/* HEBREW LETTER AYIN */ \
1100	    UNI(0x73, 0x05E3)	/* HEBREW LETTER FINAL PE */ \
1101	    UNI(0x74, 0x05E4)	/* HEBREW LETTER PE */ \
1102	    UNI(0x75, 0x05E5)	/* HEBREW LETTER FINAL TSADI */ \
1103	    UNI(0x76, 0x05E6)	/* HEBREW LETTER TSADI */ \
1104	    UNI(0x77, 0x05E7)	/* HEBREW LETTER QOF */ \
1105	    UNI(0x78, 0x05E8)	/* HEBREW LETTER RESH */ \
1106	    UNI(0x79, 0x05E9)	/* HEBREW LETTER SHIN */ \
1107	    UNI(0x7A, 0x05EA)	/* HEBREW LETTER TAV */ \
1108	    XXX(0x7B, UNDEF)	/* undefined */ \
1109	    XXX(0x7C, UNDEF)	/* undefined */ \
1110	    XXX(0x7D, UNDEF)	/* undefined */ \
1111	    XXX(0x7E, UNDEF)	/* undefined */ \
1112	    XXX(0x7F, UNDEF)	/* undefined */ \
1113	} \
1114	end_CODEPAGE()
1115
1116#define unmap_ISO_Hebrew(code,dft) \
1117	switch (code) { \
1118	    MAP(0x21, 0x1B)	/* undefined */ \
1119	    MAP(0x2A, 0xD7)	/* MULTIPLICATION SIGN */ \
1120	    MAP(0x3A, 0xF7)	/* DIVISION SIGN */ \
1121	    MAP(0x3F, 0x1B)	/* undefined */ \
1122	    MAP(0x40, 0x1B)	/* undefined */ \
1123	    MAP(0x41, 0x1B)	/* undefined */ \
1124	    MAP(0x42, 0x1B)	/* undefined */ \
1125	    MAP(0x43, 0x1B)	/* undefined */ \
1126	    MAP(0x44, 0x1B)	/* undefined */ \
1127	    MAP(0x45, 0x1B)	/* undefined */ \
1128	    MAP(0x46, 0x1B)	/* undefined */ \
1129	    MAP(0x47, 0x1B)	/* undefined */ \
1130	    MAP(0x48, 0x1B)	/* undefined */ \
1131	    MAP(0x49, 0x1B)	/* undefined */ \
1132	    MAP(0x4A, 0x1B)	/* undefined */ \
1133	    MAP(0x4B, 0x1B)	/* undefined */ \
1134	    MAP(0x4C, 0x1B)	/* undefined */ \
1135	    MAP(0x4D, 0x1B)	/* undefined */ \
1136	    MAP(0x4E, 0x1B)	/* undefined */ \
1137	    MAP(0x4F, 0x1B)	/* undefined */ \
1138	    MAP(0x50, 0x1B)	/* undefined */ \
1139	    MAP(0x51, 0x1B)	/* undefined */ \
1140	    MAP(0x52, 0x1B)	/* undefined */ \
1141	    MAP(0x53, 0x1B)	/* undefined */ \
1142	    MAP(0x54, 0x1B)	/* undefined */ \
1143	    MAP(0x55, 0x1B)	/* undefined */ \
1144	    MAP(0x56, 0x1B)	/* undefined */ \
1145	    MAP(0x57, 0x1B)	/* undefined */ \
1146	    MAP(0x58, 0x1B)	/* undefined */ \
1147	    MAP(0x59, 0x1B)	/* undefined */ \
1148	    MAP(0x5A, 0x1B)	/* undefined */ \
1149	    MAP(0x5B, 0x1B)	/* undefined */ \
1150	    MAP(0x5C, 0x1B)	/* undefined */ \
1151	    MAP(0x5D, 0x1B)	/* undefined */ \
1152	    MAP(0x5E, 0x1B)	/* undefined */ \
1153	    MAP(0x5F, 0x52)	/* DOUBLE LOW LINE */ \
1154	    MAP(0x60, 0x53)	/* HEBREW LETTER ALEF */ \
1155	    MAP(0x61, 0x54)	/* HEBREW LETTER BET */ \
1156	    MAP(0x62, 0x55)	/* HEBREW LETTER GIMEL */ \
1157	    MAP(0x63, 0x56)	/* HEBREW LETTER DALET */ \
1158	    MAP(0x64, 0x57)	/* HEBREW LETTER HE */ \
1159	    MAP(0x65, 0x58)	/* HEBREW LETTER VAV */ \
1160	    MAP(0x66, 0x59)	/* HEBREW LETTER ZAYIN */ \
1161	    MAP(0x67, 0x5A)	/* HEBREW LETTER HET */ \
1162	    MAP(0x68, 0x5B)	/* HEBREW LETTER TET */ \
1163	    MAP(0x69, 0x5C)	/* HEBREW LETTER YOD */ \
1164	    MAP(0x6A, 0x5D)	/* HEBREW LETTER FINAL KAF */ \
1165	    MAP(0x6B, 0x5E)	/* HEBREW LETTER KAF */ \
1166	    MAP(0x6C, 0x5F)	/* HEBREW LETTER LAMED */ \
1167	    MAP(0x6D, 0x60)	/* HEBREW LETTER FINAL MEM */ \
1168	    MAP(0x6E, 0x61)	/* HEBREW LETTER MEM */ \
1169	    MAP(0x6F, 0x62)	/* HEBREW LETTER FINAL NUN */ \
1170	    MAP(0x70, 0x63)	/* HEBREW LETTER NUN */ \
1171	    MAP(0x71, 0x64)	/* HEBREW LETTER SAMEKH */ \
1172	    MAP(0x72, 0x65)	/* HEBREW LETTER AYIN */ \
1173	    MAP(0x73, 0x66)	/* HEBREW LETTER FINAL PE */ \
1174	    MAP(0x74, 0x67)	/* HEBREW LETTER PE */ \
1175	    MAP(0x75, 0x68)	/* HEBREW LETTER FINAL TSADI */ \
1176	    MAP(0x76, 0x69)	/* HEBREW LETTER TSADI */ \
1177	    MAP(0x77, 0x6A)	/* HEBREW LETTER QOF */ \
1178	    MAP(0x78, 0x6B)	/* HEBREW LETTER RESH */ \
1179	    MAP(0x79, 0x6C)	/* HEBREW LETTER SHIN */ \
1180	    MAP(0x7A, 0x6D)	/* HEBREW LETTER TAV */ \
1181	    MAP(0x7B, 0x1B)	/* undefined */ \
1182	    MAP(0x7C, 0x1B)	/* undefined */ \
1183	    MAP(0x7D, 0x1B)	/* undefined */ \
1184	    MAP(0x7E, 0x1B)	/* undefined */ \
1185	    MAP(0x7F, 0x1B)	/* undefined */ \
1186	    default: dft; break; \
1187	}
1188
1189/*
1190 * ISO Latin-2 is 8859-2
1191 */
1192#define map_ISO_Latin_2(code) \
1193	begin_CODEPAGE(96) \
1194	switch (code) { \
1195	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
1196	    UNI(0x21, 0x0104)	/* LATIN CAPITAL LETTER A WITH OGONEK */ \
1197	    UNI(0x22, 0x02D8)	/* BREVE */ \
1198	    UNI(0x23, 0x0141)	/* LATIN CAPITAL LETTER L WITH STROKE */ \
1199	    UNI(0x24, 0x00A4)	/* CURRENCY SIGN */ \
1200	    UNI(0x25, 0x013D)	/* LATIN CAPITAL LETTER L WITH CARON */ \
1201	    UNI(0x26, 0x015A)	/* LATIN CAPITAL LETTER S WITH ACUTE */ \
1202	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
1203	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
1204	    UNI(0x29, 0x0160)	/* LATIN CAPITAL LETTER S WITH CARON */ \
1205	    UNI(0x2A, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
1206	    UNI(0x2B, 0x0164)	/* LATIN CAPITAL LETTER T WITH CARON */ \
1207	    UNI(0x2C, 0x0179)	/* LATIN CAPITAL LETTER Z WITH ACUTE */ \
1208	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
1209	    UNI(0x2E, 0x017D)	/* LATIN CAPITAL LETTER Z WITH CARON */ \
1210	    UNI(0x2F, 0x017B)	/* LATIN CAPITAL LETTER Z WITH DOT ABOVE */ \
1211	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
1212	    UNI(0x31, 0x0105)	/* LATIN SMALL LETTER A WITH OGONEK */ \
1213	    UNI(0x32, 0x02DB)	/* OGONEK */ \
1214	    UNI(0x33, 0x0142)	/* LATIN SMALL LETTER L WITH STROKE */ \
1215	    UNI(0x34, 0x00B4)	/* ACUTE ACCENT */ \
1216	    UNI(0x35, 0x013E)	/* LATIN SMALL LETTER L WITH CARON */ \
1217	    UNI(0x36, 0x015B)	/* LATIN SMALL LETTER S WITH ACUTE */ \
1218	    UNI(0x37, 0x02C7)	/* CARON */ \
1219	    UNI(0x38, 0x00B8)	/* CEDILLA */ \
1220	    UNI(0x39, 0x0161)	/* LATIN SMALL LETTER S WITH CARON */ \
1221	    UNI(0x3A, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
1222	    UNI(0x3B, 0x0165)	/* LATIN SMALL LETTER T WITH CARON */ \
1223	    UNI(0x3C, 0x017A)	/* LATIN SMALL LETTER Z WITH ACUTE */ \
1224	    UNI(0x3D, 0x02DD)	/* DOUBLE ACUTE ACCENT */ \
1225	    UNI(0x3E, 0x017E)	/* LATIN SMALL LETTER Z WITH CARON */ \
1226	    UNI(0x3F, 0x017C)	/* LATIN SMALL LETTER Z WITH DOT ABOVE */ \
1227	    UNI(0x40, 0x0154)	/* LATIN CAPITAL LETTER R WITH ACUTE */ \
1228	    UNI(0x41, 0x00C1)	/* LATIN CAPITAL LETTER A WITH ACUTE */ \
1229	    UNI(0x42, 0x00C2)	/* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ \
1230	    UNI(0x43, 0x0102)	/* LATIN CAPITAL LETTER A WITH BREVE */ \
1231	    UNI(0x44, 0x00C4)	/* LATIN CAPITAL LETTER A WITH DIAERESIS */ \
1232	    UNI(0x45, 0x0139)	/* LATIN CAPITAL LETTER L WITH ACUTE */ \
1233	    UNI(0x46, 0x0106)	/* LATIN CAPITAL LETTER C WITH ACUTE */ \
1234	    UNI(0x47, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
1235	    UNI(0x48, 0x010C)	/* LATIN CAPITAL LETTER C WITH CARON */ \
1236	    UNI(0x49, 0x00C9)	/* LATIN CAPITAL LETTER E WITH ACUTE */ \
1237	    UNI(0x4A, 0x0118)	/* LATIN CAPITAL LETTER E WITH OGONEK */ \
1238	    UNI(0x4B, 0x00CB)	/* LATIN CAPITAL LETTER E WITH DIAERESIS */ \
1239	    UNI(0x4C, 0x011A)	/* LATIN CAPITAL LETTER E WITH CARON */ \
1240	    UNI(0x4D, 0x00CD)	/* LATIN CAPITAL LETTER I WITH ACUTE */ \
1241	    UNI(0x4E, 0x00CE)	/* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ \
1242	    UNI(0x4F, 0x010E)	/* LATIN CAPITAL LETTER D WITH CARON */ \
1243	    UNI(0x50, 0x0110)	/* LATIN CAPITAL LETTER D WITH STROKE */ \
1244	    UNI(0x51, 0x0143)	/* LATIN CAPITAL LETTER N WITH ACUTE */ \
1245	    UNI(0x52, 0x0147)	/* LATIN CAPITAL LETTER N WITH CARON */ \
1246	    UNI(0x53, 0x00D3)	/* LATIN CAPITAL LETTER O WITH ACUTE */ \
1247	    UNI(0x54, 0x00D4)	/* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ \
1248	    UNI(0x55, 0x0150)	/* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ \
1249	    UNI(0x56, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
1250	    UNI(0x57, 0x00D7)	/* MULTIPLICATION SIGN */ \
1251	    UNI(0x58, 0x0158)	/* LATIN CAPITAL LETTER R WITH CARON */ \
1252	    UNI(0x59, 0x016E)	/* LATIN CAPITAL LETTER U WITH RING ABOVE */ \
1253	    UNI(0x5A, 0x00DA)	/* LATIN CAPITAL LETTER U WITH ACUTE */ \
1254	    UNI(0x5B, 0x0170)	/* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ \
1255	    UNI(0x5C, 0x00DC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
1256	    UNI(0x5D, 0x00DD)	/* LATIN CAPITAL LETTER Y WITH ACUTE */ \
1257	    UNI(0x5E, 0x0162)	/* LATIN CAPITAL LETTER T WITH CEDILLA */ \
1258	    UNI(0x5F, 0x00DF)	/* LATIN SMALL LETTER SHARP S */ \
1259	    UNI(0x60, 0x0155)	/* LATIN SMALL LETTER R WITH ACUTE */ \
1260	    UNI(0x61, 0x00E1)	/* LATIN SMALL LETTER A WITH ACUTE */ \
1261	    UNI(0x62, 0x00E2)	/* LATIN SMALL LETTER A WITH CIRCUMFLEX */ \
1262	    UNI(0x63, 0x0103)	/* LATIN SMALL LETTER A WITH BREVE */ \
1263	    UNI(0x64, 0x00E4)	/* LATIN SMALL LETTER A WITH DIAERESIS */ \
1264	    UNI(0x65, 0x013A)	/* LATIN SMALL LETTER L WITH ACUTE */ \
1265	    UNI(0x66, 0x0107)	/* LATIN SMALL LETTER C WITH ACUTE */ \
1266	    UNI(0x67, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
1267	    UNI(0x68, 0x010D)	/* LATIN SMALL LETTER C WITH CARON */ \
1268	    UNI(0x69, 0x00E9)	/* LATIN SMALL LETTER E WITH ACUTE */ \
1269	    UNI(0x6A, 0x0119)	/* LATIN SMALL LETTER E WITH OGONEK */ \
1270	    UNI(0x6B, 0x00EB)	/* LATIN SMALL LETTER E WITH DIAERESIS */ \
1271	    UNI(0x6C, 0x011B)	/* LATIN SMALL LETTER E WITH CARON */ \
1272	    UNI(0x6D, 0x00ED)	/* LATIN SMALL LETTER I WITH ACUTE */ \
1273	    UNI(0x6E, 0x00EE)	/* LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
1274	    UNI(0x6F, 0x010F)	/* LATIN SMALL LETTER D WITH CARON */ \
1275	    UNI(0x70, 0x0111)	/* LATIN SMALL LETTER D WITH STROKE */ \
1276	    UNI(0x71, 0x0144)	/* LATIN SMALL LETTER N WITH ACUTE */ \
1277	    UNI(0x72, 0x0148)	/* LATIN SMALL LETTER N WITH CARON */ \
1278	    UNI(0x73, 0x00F3)	/* LATIN SMALL LETTER O WITH ACUTE */ \
1279	    UNI(0x74, 0x00F4)	/* LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
1280	    UNI(0x75, 0x0151)	/* LATIN SMALL LETTER O WITH DOUBLE ACUTE */ \
1281	    UNI(0x76, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
1282	    UNI(0x77, 0x00F7)	/* DIVISION SIGN */ \
1283	    UNI(0x78, 0x0159)	/* LATIN SMALL LETTER R WITH CARON */ \
1284	    UNI(0x79, 0x016F)	/* LATIN SMALL LETTER U WITH RING ABOVE */ \
1285	    UNI(0x7A, 0x00FA)	/* LATIN SMALL LETTER U WITH ACUTE */ \
1286	    UNI(0x7B, 0x0171)	/* LATIN SMALL LETTER U WITH DOUBLE ACUTE */ \
1287	    UNI(0x7C, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
1288	    UNI(0x7D, 0x00FD)	/* LATIN SMALL LETTER Y WITH ACUTE */ \
1289	    UNI(0x7E, 0x0163)	/* LATIN SMALL LETTER T WITH CEDILLA */ \
1290	    UNI(0x7F, 0x02D9)	/* DOT ABOVE */ \
1291	} \
1292	end_CODEPAGE()
1293
1294#define unmap_ISO_Latin_2(code,dft) \
1295	switch (code) { \
1296	    MAP(0x21, 0x9A)	/* LATIN CAPITAL LETTER A WITH OGONEK */ \
1297	    MAP(0x22, 0x90)	/* BREVE */ \
1298	    MAP(0x23, 0x9B)	/* LATIN CAPITAL LETTER L WITH STROKE */ \
1299	    MAP(0x25, 0x9C)	/* LATIN CAPITAL LETTER L WITH CARON */ \
1300	    MAP(0x26, 0x9D)	/* LATIN CAPITAL LETTER S WITH ACUTE */ \
1301	    MAP(0x29, 0x9E)	/* LATIN CAPITAL LETTER S WITH CARON */ \
1302	    MAP(0x2A, 0x9F)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
1303	    MAP(0x2B, 0x21)	/* LATIN CAPITAL LETTER T WITH CARON */ \
1304	    MAP(0x2C, 0x22)	/* LATIN CAPITAL LETTER Z WITH ACUTE */ \
1305	    MAP(0x2E, 0x23)	/* LATIN CAPITAL LETTER Z WITH CARON */ \
1306	    MAP(0x2F, 0x24)	/* LATIN CAPITAL LETTER Z WITH DOT ABOVE */ \
1307	    MAP(0x31, 0x25)	/* LATIN SMALL LETTER A WITH OGONEK */ \
1308	    MAP(0x32, 0x91)	/* OGONEK */ \
1309	    MAP(0x33, 0x26)	/* LATIN SMALL LETTER L WITH STROKE */ \
1310	    MAP(0x35, 0x27)	/* LATIN SMALL LETTER L WITH CARON */ \
1311	    MAP(0x36, 0x28)	/* LATIN SMALL LETTER S WITH ACUTE */ \
1312	    MAP(0x37, 0x92)	/* CARON */ \
1313	    MAP(0x39, 0x29)	/* LATIN SMALL LETTER S WITH CARON */ \
1314	    MAP(0x3A, 0x2A)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
1315	    MAP(0x3B, 0x2B)	/* LATIN SMALL LETTER T WITH CARON */ \
1316	    MAP(0x3C, 0x2C)	/* LATIN SMALL LETTER Z WITH ACUTE */ \
1317	    MAP(0x3D, 0x93)	/* DOUBLE ACUTE ACCENT */ \
1318	    MAP(0x3E, 0x2D)	/* LATIN SMALL LETTER Z WITH CARON */ \
1319	    MAP(0x3F, 0x2E)	/* LATIN SMALL LETTER Z WITH DOT ABOVE */ \
1320	    MAP(0x40, 0x2F)	/* LATIN CAPITAL LETTER R WITH ACUTE */ \
1321	    MAP(0x43, 0x30)	/* LATIN CAPITAL LETTER A WITH BREVE */ \
1322	    MAP(0x45, 0x31)	/* LATIN CAPITAL LETTER L WITH ACUTE */ \
1323	    MAP(0x46, 0x32)	/* LATIN CAPITAL LETTER C WITH ACUTE */ \
1324	    MAP(0x48, 0x33)	/* LATIN CAPITAL LETTER C WITH CARON */ \
1325	    MAP(0x4A, 0x34)	/* LATIN CAPITAL LETTER E WITH OGONEK */ \
1326	    MAP(0x4C, 0x35)	/* LATIN CAPITAL LETTER E WITH CARON */ \
1327	    MAP(0x4F, 0x36)	/* LATIN CAPITAL LETTER D WITH CARON */ \
1328	    MAP(0x51, 0x37)	/* LATIN CAPITAL LETTER N WITH ACUTE */ \
1329	    MAP(0x52, 0x38)	/* LATIN CAPITAL LETTER N WITH CARON */ \
1330	    MAP(0x55, 0x39)	/* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ \
1331	    MAP(0x58, 0x3A)	/* LATIN CAPITAL LETTER R WITH CARON */ \
1332	    MAP(0x59, 0x3B)	/* LATIN CAPITAL LETTER U WITH RING ABOVE */ \
1333	    MAP(0x5B, 0x3C)	/* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ \
1334	    MAP(0x5E, 0x3D)	/* LATIN CAPITAL LETTER T WITH CEDILLA */ \
1335	    MAP(0x60, 0x3E)	/* LATIN SMALL LETTER R WITH ACUTE */ \
1336	    MAP(0x63, 0x3F)	/* LATIN SMALL LETTER A WITH BREVE */ \
1337	    MAP(0x65, 0x40)	/* LATIN SMALL LETTER L WITH ACUTE */ \
1338	    MAP(0x66, 0x41)	/* LATIN SMALL LETTER C WITH ACUTE */ \
1339	    MAP(0x68, 0x42)	/* LATIN SMALL LETTER C WITH CARON */ \
1340	    MAP(0x6A, 0x43)	/* LATIN SMALL LETTER E WITH OGONEK */ \
1341	    MAP(0x6C, 0x44)	/* LATIN SMALL LETTER E WITH CARON */ \
1342	    MAP(0x6F, 0x45)	/* LATIN SMALL LETTER D WITH CARON */ \
1343	    MAP(0x70, 0x46)	/* LATIN SMALL LETTER D WITH STROKE */ \
1344	    MAP(0x71, 0x47)	/* LATIN SMALL LETTER N WITH ACUTE */ \
1345	    MAP(0x72, 0x48)	/* LATIN SMALL LETTER N WITH CARON */ \
1346	    MAP(0x75, 0x49)	/* LATIN SMALL LETTER O WITH DOUBLE ACUTE */ \
1347	    MAP(0x78, 0x4A)	/* LATIN SMALL LETTER R WITH CARON */ \
1348	    MAP(0x79, 0x4B)	/* LATIN SMALL LETTER U WITH RING ABOVE */ \
1349	    MAP(0x7B, 0x4C)	/* LATIN SMALL LETTER U WITH DOUBLE ACUTE */ \
1350	    MAP(0x7E, 0x4D)	/* LATIN SMALL LETTER T WITH CEDILLA */ \
1351	    MAP(0x7F, 0x94)	/* DOT ABOVE */ \
1352	    default: dft; break; \
1353	}
1354
1355/*
1356 * ISO Latin-5 is 8859-9
1357 */
1358#define map_ISO_Latin_5(code) \
1359	begin_CODEPAGE(96) \
1360	switch (code) { \
1361	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
1362	    UNI(0x21, 0x00A1)	/* INVERTED EXCLAMATION MARK */ \
1363	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
1364	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
1365	    UNI(0x24, 0x00A4)	/* CURRENCY SIGN */ \
1366	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
1367	    UNI(0x26, 0x00A6)	/* BROKEN BAR */ \
1368	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
1369	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
1370	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
1371	    UNI(0x2A, 0x00AA)	/* FEMININE ORDINAL INDICATOR */ \
1372	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1373	    UNI(0x2C, 0x00AC)	/* NOT SIGN */ \
1374	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
1375	    UNI(0x2E, 0x00AE)	/* REGISTERED SIGN */ \
1376	    UNI(0x2F, 0x00AF)	/* MACRON */ \
1377	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
1378	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
1379	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
1380	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
1381	    UNI(0x34, 0x00B4)	/* ACUTE ACCENT */ \
1382	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
1383	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
1384	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
1385	    UNI(0x38, 0x00B8)	/* CEDILLA */ \
1386	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
1387	    UNI(0x3A, 0x00BA)	/* MASCULINE ORDINAL INDICATOR */ \
1388	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1389	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
1390	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
1391	    UNI(0x3E, 0x00BE)	/* VULGAR FRACTION THREE QUARTERS */ \
1392	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
1393	    UNI(0x40, 0x00C0)	/* LATIN CAPITAL LETTER A WITH GRAVE */ \
1394	    UNI(0x41, 0x00C1)	/* LATIN CAPITAL LETTER A WITH ACUTE */ \
1395	    UNI(0x42, 0x00C2)	/* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ \
1396	    UNI(0x43, 0x00C3)	/* LATIN CAPITAL LETTER A WITH TILDE */ \
1397	    UNI(0x44, 0x00C4)	/* LATIN CAPITAL LETTER A WITH DIAERESIS */ \
1398	    UNI(0x45, 0x00C5)	/* LATIN CAPITAL LETTER A WITH RING ABOVE */ \
1399	    UNI(0x46, 0x00C6)	/* LATIN CAPITAL LETTER AE */ \
1400	    UNI(0x47, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
1401	    UNI(0x48, 0x00C8)	/* LATIN CAPITAL LETTER E WITH GRAVE */ \
1402	    UNI(0x49, 0x00C9)	/* LATIN CAPITAL LETTER E WITH ACUTE */ \
1403	    UNI(0x4A, 0x00CA)	/* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ \
1404	    UNI(0x4B, 0x00CB)	/* LATIN CAPITAL LETTER E WITH DIAERESIS */ \
1405	    UNI(0x4C, 0x00CC)	/* LATIN CAPITAL LETTER I WITH GRAVE */ \
1406	    UNI(0x4D, 0x00CD)	/* LATIN CAPITAL LETTER I WITH ACUTE */ \
1407	    UNI(0x4E, 0x00CE)	/* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ \
1408	    UNI(0x4F, 0x00CF)	/* LATIN CAPITAL LETTER I WITH DIAERESIS */ \
1409	    UNI(0x50, 0x011E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
1410	    UNI(0x51, 0x00D1)	/* LATIN CAPITAL LETTER N WITH TILDE */ \
1411	    UNI(0x52, 0x00D2)	/* LATIN CAPITAL LETTER O WITH GRAVE */ \
1412	    UNI(0x53, 0x00D3)	/* LATIN CAPITAL LETTER O WITH ACUTE */ \
1413	    UNI(0x54, 0x00D4)	/* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ \
1414	    UNI(0x55, 0x00D5)	/* LATIN CAPITAL LETTER O WITH TILDE */ \
1415	    UNI(0x56, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
1416	    UNI(0x57, 0x00D7)	/* MULTIPLICATION SIGN */ \
1417	    UNI(0x58, 0x00D8)	/* LATIN CAPITAL LETTER O WITH STROKE */ \
1418	    UNI(0x59, 0x00D9)	/* LATIN CAPITAL LETTER U WITH GRAVE */ \
1419	    UNI(0x5A, 0x00DA)	/* LATIN CAPITAL LETTER U WITH ACUTE */ \
1420	    UNI(0x5B, 0x00DB)	/* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ \
1421	    UNI(0x5C, 0x00DC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
1422	    UNI(0x5D, 0x0130)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
1423	    UNI(0x5E, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
1424	    UNI(0x5F, 0x00DF)	/* LATIN SMALL LETTER SHARP S */ \
1425	    UNI(0x60, 0x00E0)	/* LATIN SMALL LETTER A WITH GRAVE */ \
1426	    UNI(0x61, 0x00E1)	/* LATIN SMALL LETTER A WITH ACUTE */ \
1427	    UNI(0x62, 0x00E2)	/* LATIN SMALL LETTER A WITH CIRCUMFLEX */ \
1428	    UNI(0x63, 0x00E3)	/* LATIN SMALL LETTER A WITH TILDE */ \
1429	    UNI(0x64, 0x00E4)	/* LATIN SMALL LETTER A WITH DIAERESIS */ \
1430	    UNI(0x65, 0x00E5)	/* LATIN SMALL LETTER A WITH RING ABOVE */ \
1431	    UNI(0x66, 0x00E6)	/* LATIN SMALL LETTER AE */ \
1432	    UNI(0x67, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
1433	    UNI(0x68, 0x00E8)	/* LATIN SMALL LETTER E WITH GRAVE */ \
1434	    UNI(0x69, 0x00E9)	/* LATIN SMALL LETTER E WITH ACUTE */ \
1435	    UNI(0x6A, 0x00EA)	/* LATIN SMALL LETTER E WITH CIRCUMFLEX */ \
1436	    UNI(0x6B, 0x00EB)	/* LATIN SMALL LETTER E WITH DIAERESIS */ \
1437	    UNI(0x6C, 0x00EC)	/* LATIN SMALL LETTER I WITH GRAVE */ \
1438	    UNI(0x6D, 0x00ED)	/* LATIN SMALL LETTER I WITH ACUTE */ \
1439	    UNI(0x6E, 0x00EE)	/* LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
1440	    UNI(0x6F, 0x00EF)	/* LATIN SMALL LETTER I WITH DIAERESIS */ \
1441	    UNI(0x70, 0x011F)	/* LATIN SMALL LETTER G WITH BREVE */ \
1442	    UNI(0x71, 0x00F1)	/* LATIN SMALL LETTER N WITH TILDE */ \
1443	    UNI(0x72, 0x00F2)	/* LATIN SMALL LETTER O WITH GRAVE */ \
1444	    UNI(0x73, 0x00F3)	/* LATIN SMALL LETTER O WITH ACUTE */ \
1445	    UNI(0x74, 0x00F4)	/* LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
1446	    UNI(0x75, 0x00F5)	/* LATIN SMALL LETTER O WITH TILDE */ \
1447	    UNI(0x76, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
1448	    UNI(0x77, 0x00F7)	/* DIVISION SIGN */ \
1449	    UNI(0x78, 0x00F8)	/* LATIN SMALL LETTER O WITH STROKE */ \
1450	    UNI(0x79, 0x00F9)	/* LATIN SMALL LETTER U WITH GRAVE */ \
1451	    UNI(0x7A, 0x00FA)	/* LATIN SMALL LETTER U WITH ACUTE */ \
1452	    UNI(0x7B, 0x00FB)	/* LATIN SMALL LETTER U WITH CIRCUMFLEX */ \
1453	    UNI(0x7C, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
1454	    UNI(0x7D, 0x0131)	/* LATIN SMALL LETTER DOTLESS I */ \
1455	    UNI(0x7E, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
1456	    UNI(0x7F, 0x00FF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
1457	} \
1458	end_CODEPAGE()
1459
1460#define unmap_ISO_Latin_5(code,dft) \
1461	switch (code) { \
1462	    MAP(0x50, 0x4E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
1463	    MAP(0x5D, 0x4F)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
1464	    MAP(0x5E, 0x9F)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
1465	    MAP(0x70, 0x50)	/* LATIN SMALL LETTER G WITH BREVE */ \
1466	    MAP(0x7D, 0x51)	/* LATIN SMALL LETTER DOTLESS I */ \
1467	    MAP(0x7E, 0x2A)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
1468	    default: dft; break; \
1469	}
1470
1471/*
1472 * DEC Cyrillic from screenshot
1473 */
1474#define map_DEC_Cyrillic(code) \
1475	begin_CODEPAGE(94) \
1476	switch (code) { \
1477	    XXX(0x21, UNDEF)	/* undefined */ \
1478	    XXX(0x22, UNDEF)	/* undefined */ \
1479	    XXX(0x23, UNDEF)	/* undefined */ \
1480	    XXX(0x24, UNDEF)	/* undefined */ \
1481	    XXX(0x25, UNDEF)	/* undefined */ \
1482	    XXX(0x26, UNDEF)	/* undefined */ \
1483	    XXX(0x27, UNDEF)	/* undefined */ \
1484	    XXX(0x28, UNDEF)	/* undefined */ \
1485	    XXX(0x29, UNDEF)	/* undefined */ \
1486	    XXX(0x2A, UNDEF)	/* undefined */ \
1487	    XXX(0x2B, UNDEF)	/* undefined */ \
1488	    XXX(0x2C, UNDEF)	/* undefined */ \
1489	    XXX(0x2D, UNDEF)	/* undefined */ \
1490	    XXX(0x2E, UNDEF)	/* undefined */ \
1491	    XXX(0x2F, UNDEF)	/* undefined */ \
1492	    XXX(0x30, UNDEF)	/* undefined */ \
1493	    XXX(0x31, UNDEF)	/* undefined */ \
1494	    XXX(0x32, UNDEF)	/* undefined */ \
1495	    XXX(0x33, UNDEF)	/* undefined */ \
1496	    XXX(0x34, UNDEF)	/* undefined */ \
1497	    XXX(0x35, UNDEF)	/* undefined */ \
1498	    XXX(0x36, UNDEF)	/* undefined */ \
1499	    XXX(0x37, UNDEF)	/* undefined */ \
1500	    XXX(0x38, UNDEF)	/* undefined */ \
1501	    XXX(0x39, UNDEF)	/* undefined */ \
1502	    XXX(0x3A, UNDEF)	/* undefined */ \
1503	    XXX(0x3B, UNDEF)	/* undefined */ \
1504	    XXX(0x3C, UNDEF)	/* undefined */ \
1505	    XXX(0x3D, UNDEF)	/* undefined */ \
1506	    XXX(0x3E, UNDEF)	/* undefined */ \
1507	    XXX(0x3F, UNDEF)	/* undefined */ \
1508	    UNI(0x40, 0x044E)	/* CYRILLIC SMALL LETTER YU */ \
1509	    UNI(0x41, 0x0430)	/* CYRILLIC SMALL LETTER A */ \
1510	    UNI(0x42, 0x0431)	/* CYRILLIC SMALL LETTER BE */ \
1511	    UNI(0x43, 0x0446)	/* CYRILLIC SMALL LETTER TSE */ \
1512	    UNI(0x44, 0x0434)	/* CYRILLIC SMALL LETTER DE */ \
1513	    UNI(0x45, 0x0435)	/* CYRILLIC SMALL LETTER IE */ \
1514	    UNI(0x46, 0x0444)	/* CYRILLIC SMALL LETTER EF */ \
1515	    UNI(0x47, 0x0433)	/* CYRILLIC SMALL LETTER GHE */ \
1516	    UNI(0x48, 0x0445)	/* CYRILLIC SMALL LETTER HA */ \
1517	    UNI(0x49, 0x0438)	/* CYRILLIC SMALL LETTER I */ \
1518	    UNI(0x4A, 0x0439)	/* CYRILLIC SMALL LETTER SHORT I */ \
1519	    UNI(0x4B, 0x043A)	/* CYRILLIC SMALL LETTER KA */ \
1520	    UNI(0x4C, 0x043B)	/* CYRILLIC SMALL LETTER EL */ \
1521	    UNI(0x4D, 0x043C)	/* CYRILLIC SMALL LETTER EM */ \
1522	    UNI(0x4E, 0x043D)	/* CYRILLIC SMALL LETTER EN */ \
1523	    UNI(0x4F, 0x043E)	/* CYRILLIC SMALL LETTER O */ \
1524	    UNI(0x50, 0x043F)	/* CYRILLIC SMALL LETTER PE */ \
1525	    UNI(0x51, 0x044F)	/* CYRILLIC SMALL LETTER YA */ \
1526	    UNI(0x52, 0x0440)	/* CYRILLIC SMALL LETTER ER */ \
1527	    UNI(0x53, 0x0441)	/* CYRILLIC SMALL LETTER ES */ \
1528	    UNI(0x54, 0x0442)	/* CYRILLIC SMALL LETTER TE */ \
1529	    UNI(0x55, 0x0443)	/* CYRILLIC SMALL LETTER U */ \
1530	    UNI(0x56, 0x0436)	/* CYRILLIC SMALL LETTER ZHE */ \
1531	    UNI(0x57, 0x0432)	/* CYRILLIC SMALL LETTER VE */ \
1532	    UNI(0x58, 0x044C)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
1533	    UNI(0x59, 0x044B)	/* CYRILLIC SMALL LETTER YERU */ \
1534	    UNI(0x5A, 0x0437)	/* CYRILLIC SMALL LETTER ZE */ \
1535	    UNI(0x5B, 0x0448)	/* CYRILLIC SMALL LETTER SHA */ \
1536	    UNI(0x5C, 0x044D)	/* CYRILLIC SMALL LETTER E */ \
1537	    UNI(0x5D, 0x0449)	/* CYRILLIC SMALL LETTER SHCHA */ \
1538	    UNI(0x5E, 0x0447)	/* CYRILLIC SMALL LETTER CHE */ \
1539	    UNI(0x5F, 0x044A)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
1540	    UNI(0x60, 0x042E)	/* CYRILLIC CAPITAL LETTER YU */ \
1541	    UNI(0x61, 0x0410)	/* CYRILLIC CAPITAL LETTER A */ \
1542	    UNI(0x62, 0x0411)	/* CYRILLIC CAPITAL LETTER BE */ \
1543	    UNI(0x63, 0x0426)	/* CYRILLIC CAPITAL LETTER TSE */ \
1544	    UNI(0x64, 0x0414)	/* CYRILLIC CAPITAL LETTER DE */ \
1545	    UNI(0x65, 0x0415)	/* CYRILLIC CAPITAL LETTER IE */ \
1546	    UNI(0x66, 0x0424)	/* CYRILLIC CAPITAL LETTER EF */ \
1547	    UNI(0x67, 0x0413)	/* CYRILLIC CAPITAL LETTER GHE */ \
1548	    UNI(0x68, 0x0425)	/* CYRILLIC CAPITAL LETTER HA */ \
1549	    UNI(0x69, 0x0418)	/* CYRILLIC CAPITAL LETTER I */ \
1550	    UNI(0x6A, 0x0419)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
1551	    UNI(0x6B, 0x041A)	/* CYRILLIC CAPITAL LETTER KA */ \
1552	    UNI(0x6C, 0x041B)	/* CYRILLIC CAPITAL LETTER EL */ \
1553	    UNI(0x6D, 0x041C)	/* CYRILLIC CAPITAL LETTER EM */ \
1554	    UNI(0x6E, 0x041D)	/* CYRILLIC CAPITAL LETTER EN */ \
1555	    UNI(0x6F, 0x041E)	/* CYRILLIC CAPITAL LETTER O */ \
1556	    UNI(0x70, 0x041F)	/* CYRILLIC CAPITAL LETTER PE */ \
1557	    UNI(0x71, 0x042F)	/* CYRILLIC CAPITAL LETTER YA */ \
1558	    UNI(0x72, 0x0420)	/* CYRILLIC CAPITAL LETTER ER */ \
1559	    UNI(0x73, 0x0421)	/* CYRILLIC CAPITAL LETTER ES */ \
1560	    UNI(0x74, 0x0422)	/* CYRILLIC CAPITAL LETTER TE */ \
1561	    UNI(0x75, 0x0423)	/* CYRILLIC CAPITAL LETTER U */ \
1562	    UNI(0x76, 0x0416)	/* CYRILLIC CAPITAL LETTER ZHE */ \
1563	    UNI(0x77, 0x0412)	/* CYRILLIC CAPITAL LETTER VE */ \
1564	    UNI(0x78, 0x042C)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
1565	    UNI(0x79, 0x042B)	/* CYRILLIC CAPITAL LETTER YERU */ \
1566	    UNI(0x7A, 0x0417)	/* CYRILLIC CAPITAL LETTER ZE */ \
1567	    UNI(0x7B, 0x0428)	/* CYRILLIC CAPITAL LETTER SHA */ \
1568	    UNI(0x7C, 0x042D)	/* CYRILLIC CAPITAL LETTER E */ \
1569	    UNI(0x7D, 0x0429)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
1570	    UNI(0x7E, 0x0427)	/* CYRILLIC CAPITAL LETTER CHE */ \
1571	} \
1572	end_CODEPAGE()
1573
1574#define unmap_DEC_Cyrillic(code,dft) \
1575	switch (code) { \
1576	    MAP(0x21, 0x1B)	/* undefined */ \
1577	    MAP(0x22, 0x1B)	/* undefined */ \
1578	    MAP(0x23, 0x1B)	/* undefined */ \
1579	    MAP(0x24, 0x1B)	/* undefined */ \
1580	    MAP(0x25, 0x1B)	/* undefined */ \
1581	    MAP(0x26, 0x1B)	/* undefined */ \
1582	    MAP(0x27, 0x1B)	/* undefined */ \
1583	    MAP(0x28, 0x1B)	/* undefined */ \
1584	    MAP(0x29, 0x1B)	/* undefined */ \
1585	    MAP(0x2A, 0x1B)	/* undefined */ \
1586	    MAP(0x2B, 0x1B)	/* undefined */ \
1587	    MAP(0x2C, 0x1B)	/* undefined */ \
1588	    MAP(0x2D, 0x1B)	/* undefined */ \
1589	    MAP(0x2E, 0x1B)	/* undefined */ \
1590	    MAP(0x2F, 0x1B)	/* undefined */ \
1591	    MAP(0x30, 0x1B)	/* undefined */ \
1592	    MAP(0x31, 0x1B)	/* undefined */ \
1593	    MAP(0x32, 0x1B)	/* undefined */ \
1594	    MAP(0x33, 0x1B)	/* undefined */ \
1595	    MAP(0x34, 0x1B)	/* undefined */ \
1596	    MAP(0x35, 0x1B)	/* undefined */ \
1597	    MAP(0x36, 0x1B)	/* undefined */ \
1598	    MAP(0x37, 0x1B)	/* undefined */ \
1599	    MAP(0x38, 0x1B)	/* undefined */ \
1600	    MAP(0x39, 0x1B)	/* undefined */ \
1601	    MAP(0x3A, 0x1B)	/* undefined */ \
1602	    MAP(0x3B, 0x1B)	/* undefined */ \
1603	    MAP(0x3C, 0x1B)	/* undefined */ \
1604	    MAP(0x3D, 0x1B)	/* undefined */ \
1605	    MAP(0x3E, 0x1B)	/* undefined */ \
1606	    MAP(0x3F, 0x1B)	/* undefined */ \
1607	    MAP(0x40, 0x4F)	/* CYRILLIC SMALL LETTER YU */ \
1608	    MAP(0x41, 0x31)	/* CYRILLIC SMALL LETTER A */ \
1609	    MAP(0x42, 0x32)	/* CYRILLIC SMALL LETTER BE */ \
1610	    MAP(0x43, 0x47)	/* CYRILLIC SMALL LETTER TSE */ \
1611	    MAP(0x44, 0x35)	/* CYRILLIC SMALL LETTER DE */ \
1612	    MAP(0x45, 0x36)	/* CYRILLIC SMALL LETTER IE */ \
1613	    MAP(0x46, 0x45)	/* CYRILLIC SMALL LETTER EF */ \
1614	    MAP(0x47, 0x34)	/* CYRILLIC SMALL LETTER GHE */ \
1615	    MAP(0x48, 0x46)	/* CYRILLIC SMALL LETTER HA */ \
1616	    MAP(0x49, 0x39)	/* CYRILLIC SMALL LETTER I */ \
1617	    MAP(0x4A, 0x3A)	/* CYRILLIC SMALL LETTER SHORT I */ \
1618	    MAP(0x4B, 0x3B)	/* CYRILLIC SMALL LETTER KA */ \
1619	    MAP(0x4C, 0x3C)	/* CYRILLIC SMALL LETTER EL */ \
1620	    MAP(0x4D, 0x3D)	/* CYRILLIC SMALL LETTER EM */ \
1621	    MAP(0x4E, 0x3E)	/* CYRILLIC SMALL LETTER EN */ \
1622	    MAP(0x4F, 0x3F)	/* CYRILLIC SMALL LETTER O */ \
1623	    MAP(0x50, 0x40)	/* CYRILLIC SMALL LETTER PE */ \
1624	    MAP(0x51, 0x50)	/* CYRILLIC SMALL LETTER YA */ \
1625	    MAP(0x52, 0x41)	/* CYRILLIC SMALL LETTER ER */ \
1626	    MAP(0x53, 0x42)	/* CYRILLIC SMALL LETTER ES */ \
1627	    MAP(0x54, 0x43)	/* CYRILLIC SMALL LETTER TE */ \
1628	    MAP(0x55, 0x44)	/* CYRILLIC SMALL LETTER U */ \
1629	    MAP(0x56, 0x37)	/* CYRILLIC SMALL LETTER ZHE */ \
1630	    MAP(0x57, 0x33)	/* CYRILLIC SMALL LETTER VE */ \
1631	    MAP(0x58, 0x4D)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
1632	    MAP(0x59, 0x4C)	/* CYRILLIC SMALL LETTER YERU */ \
1633	    MAP(0x5A, 0x38)	/* CYRILLIC SMALL LETTER ZE */ \
1634	    MAP(0x5B, 0x49)	/* CYRILLIC SMALL LETTER SHA */ \
1635	    MAP(0x5C, 0x4E)	/* CYRILLIC SMALL LETTER E */ \
1636	    MAP(0x5D, 0x4A)	/* CYRILLIC SMALL LETTER SHCHA */ \
1637	    MAP(0x5E, 0x48)	/* CYRILLIC SMALL LETTER CHE */ \
1638	    MAP(0x5F, 0x4B)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
1639	    MAP(0x60, 0x2F)	/* CYRILLIC CAPITAL LETTER YU */ \
1640	    MAP(0x61, 0x11)	/* CYRILLIC CAPITAL LETTER A */ \
1641	    MAP(0x62, 0x12)	/* CYRILLIC CAPITAL LETTER BE */ \
1642	    MAP(0x63, 0x27)	/* CYRILLIC CAPITAL LETTER TSE */ \
1643	    MAP(0x64, 0x15)	/* CYRILLIC CAPITAL LETTER DE */ \
1644	    MAP(0x65, 0x16)	/* CYRILLIC CAPITAL LETTER IE */ \
1645	    MAP(0x66, 0x25)	/* CYRILLIC CAPITAL LETTER EF */ \
1646	    MAP(0x67, 0x14)	/* CYRILLIC CAPITAL LETTER GHE */ \
1647	    MAP(0x68, 0x26)	/* CYRILLIC CAPITAL LETTER HA */ \
1648	    MAP(0x69, 0x19)	/* CYRILLIC CAPITAL LETTER I */ \
1649	    MAP(0x6A, 0x1A)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
1650	    MAP(0x6B, 0x1B)	/* CYRILLIC CAPITAL LETTER KA */ \
1651	    MAP(0x6C, 0x1C)	/* CYRILLIC CAPITAL LETTER EL */ \
1652	    MAP(0x6D, 0x1D)	/* CYRILLIC CAPITAL LETTER EM */ \
1653	    MAP(0x6E, 0x1E)	/* CYRILLIC CAPITAL LETTER EN */ \
1654	    MAP(0x6F, 0x1F)	/* CYRILLIC CAPITAL LETTER O */ \
1655	    MAP(0x70, 0x20)	/* CYRILLIC CAPITAL LETTER PE */ \
1656	    MAP(0x71, 0x30)	/* CYRILLIC CAPITAL LETTER YA */ \
1657	    MAP(0x72, 0x21)	/* CYRILLIC CAPITAL LETTER ER */ \
1658	    MAP(0x73, 0x22)	/* CYRILLIC CAPITAL LETTER ES */ \
1659	    MAP(0x74, 0x23)	/* CYRILLIC CAPITAL LETTER TE */ \
1660	    MAP(0x75, 0x24)	/* CYRILLIC CAPITAL LETTER U */ \
1661	    MAP(0x76, 0x17)	/* CYRILLIC CAPITAL LETTER ZHE */ \
1662	    MAP(0x77, 0x13)	/* CYRILLIC CAPITAL LETTER VE */ \
1663	    MAP(0x78, 0x2D)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
1664	    MAP(0x79, 0x2C)	/* CYRILLIC CAPITAL LETTER YERU */ \
1665	    MAP(0x7A, 0x18)	/* CYRILLIC CAPITAL LETTER ZE */ \
1666	    MAP(0x7B, 0x29)	/* CYRILLIC CAPITAL LETTER SHA */ \
1667	    MAP(0x7C, 0x2E)	/* CYRILLIC CAPITAL LETTER E */ \
1668	    MAP(0x7D, 0x2A)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
1669	    MAP(0x7E, 0x28)	/* CYRILLIC CAPITAL LETTER CHE */ \
1670	    default: dft; break; \
1671	}
1672
1673/*
1674 * figure A-24 "DEC Greek Supplemental Character Set"
1675 */
1676#define map_DEC_Greek_Supp(code) \
1677	begin_CODEPAGE(94) \
1678	switch (code) { \
1679	    UNI(0x21, 0x00A1)	/* LEFT SINGLE QUOTATION MARK */ \
1680	    UNI(0x22, 0x00A2)	/* RIGHT SINGLE QUOTATION MARK */ \
1681	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
1682	    XXX(0x24, UNDEF)	/* EURO SIGN */ \
1683	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
1684	    XXX(0x26, UNDEF)	/* BROKEN BAR */ \
1685	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
1686	    UNI(0x28, 0x00A4)	/* CURRENCY SIGN */ \
1687	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
1688	    UNI(0x2A, 0x00AA)	/* FEMININE ORDINAL INDICATOR */ \
1689	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1690	    XXX(0x2C, UNDEF)	/* reserved */ \
1691	    XXX(0x2D, UNDEF)	/* reserved */ \
1692	    XXX(0x2E, UNDEF)	/* reserved */ \
1693	    XXX(0x2F, UNDEF)	/* reserved */ \
1694	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
1695	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
1696	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
1697	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
1698	    XXX(0x34, UNDEF)	/* reserved */ \
1699	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
1700	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
1701	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
1702	    XXX(0x38, UNDEF)	/* reserved */ \
1703	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
1704	    UNI(0x3A, 0x00BA)	/* MASCULINE ORDINAL INDICATOR */ \
1705	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1706	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
1707	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
1708	    XXX(0x3E, UNDEF)	/* reserved */ \
1709	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
1710	    UNI(0x40, 0x03CA)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
1711	    UNI(0x41, 0x0391)	/* GREEK CAPITAL LETTER ALPHA */ \
1712	    UNI(0x42, 0x0392)	/* GREEK CAPITAL LETTER BETA */ \
1713	    UNI(0x43, 0x0393)	/* GREEK CAPITAL LETTER GAMMA */ \
1714	    UNI(0x44, 0x0394)	/* GREEK CAPITAL LETTER DELTA */ \
1715	    UNI(0x45, 0x0395)	/* GREEK CAPITAL LETTER EPSILON */ \
1716	    UNI(0x46, 0x0396)	/* GREEK CAPITAL LETTER ZETA */ \
1717	    UNI(0x47, 0x0397)	/* GREEK CAPITAL LETTER ETA */ \
1718	    UNI(0x48, 0x0398)	/* GREEK CAPITAL LETTER THETA */ \
1719	    UNI(0x49, 0x0399)	/* GREEK CAPITAL LETTER IOTA */ \
1720	    UNI(0x4A, 0x039A)	/* GREEK CAPITAL LETTER KAPPA */ \
1721	    UNI(0x4B, 0x039B)	/* GREEK CAPITAL LETTER LAMDA */ \
1722	    UNI(0x4C, 0x039C)	/* GREEK CAPITAL LETTER MU */ \
1723	    UNI(0x4D, 0x039D)	/* GREEK CAPITAL LETTER NU */ \
1724	    UNI(0x4E, 0x039E)	/* GREEK CAPITAL LETTER XI */ \
1725	    UNI(0x4F, 0x039F)	/* GREEK CAPITAL LETTER OMICRON */ \
1726	    XXX(0x50, UNDEF)	/* reserved */ \
1727	    UNI(0x51, 0x03A0)	/* GREEK CAPITAL LETTER PI */ \
1728	    UNI(0x52, 0x03A1)	/* GREEK CAPITAL LETTER RHO */ \
1729	    UNI(0x53, 0x03A3)	/* GREEK CAPITAL LETTER SIGMA */ \
1730	    UNI(0x54, 0x03A4)	/* GREEK CAPITAL LETTER TAU */ \
1731	    UNI(0x55, 0x03A5)	/* GREEK CAPITAL LETTER UPSILON */ \
1732	    UNI(0x56, 0x03A6)	/* GREEK CAPITAL LETTER PHI */ \
1733	    UNI(0x57, 0x03A7)	/* GREEK CAPITAL LETTER CHI */ \
1734	    UNI(0x58, 0x03A8)	/* GREEK CAPITAL LETTER PSI */ \
1735	    UNI(0x59, 0x03A9)	/* GREEK CAPITAL LETTER OMEGA */ \
1736	    UNI(0x5A, 0x03AC)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
1737	    UNI(0x5B, 0x03AD)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
1738	    UNI(0x5C, 0x03AE)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
1739	    UNI(0x5D, 0x03AF)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
1740	    XXX(0x5E, UNDEF)	/* reserved */ \
1741	    UNI(0x5F, 0x03CC)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
1742	    UNI(0x60, 0x03CB)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
1743	    UNI(0x61, 0x03B1)	/* GREEK SMALL LETTER ALPHA */ \
1744	    UNI(0x62, 0x03B2)	/* GREEK SMALL LETTER BETA */ \
1745	    UNI(0x63, 0x03B3)	/* GREEK SMALL LETTER GAMMA */ \
1746	    UNI(0x64, 0x03B4)	/* GREEK SMALL LETTER DELTA */ \
1747	    UNI(0x65, 0x03B5)	/* GREEK SMALL LETTER EPSILON */ \
1748	    UNI(0x66, 0x03B6)	/* GREEK SMALL LETTER ZETA */ \
1749	    UNI(0x67, 0x03B7)	/* GREEK SMALL LETTER ETA */ \
1750	    UNI(0x68, 0x03B8)	/* GREEK SMALL LETTER THETA */ \
1751	    UNI(0x69, 0x03B9)	/* GREEK SMALL LETTER IOTA */ \
1752	    UNI(0x6A, 0x03BA)	/* GREEK SMALL LETTER KAPPA */ \
1753	    UNI(0x6B, 0x03BB)	/* GREEK SMALL LETTER LAMDA */ \
1754	    UNI(0x6C, 0x03BC)	/* GREEK SMALL LETTER MU */ \
1755	    UNI(0x6D, 0x03BD)	/* GREEK SMALL LETTER NU */ \
1756	    UNI(0x6E, 0x03BE)	/* GREEK SMALL LETTER XI */ \
1757	    UNI(0x6F, 0x03BF)	/* GREEK SMALL LETTER OMICRON */ \
1758	    XXX(0x70, UNDEF)	/* reserved */ \
1759	    UNI(0x71, 0x03C0)	/* GREEK SMALL LETTER PI */ \
1760	    UNI(0x72, 0x03C1)	/* GREEK SMALL LETTER RHO */ \
1761	    UNI(0x73, 0x03C3)	/* GREEK SMALL LETTER SIGMA */ \
1762	    UNI(0x74, 0x03C4)	/* GREEK SMALL LETTER TAU */ \
1763	    UNI(0x75, 0x03C5)	/* GREEK SMALL LETTER UPSILON */ \
1764	    UNI(0x76, 0x03C6)	/* GREEK SMALL LETTER PHI */ \
1765	    UNI(0x77, 0x03C7)	/* GREEK SMALL LETTER CHI */ \
1766	    UNI(0x78, 0x03C8)	/* GREEK SMALL LETTER PSI */ \
1767	    UNI(0x79, 0x03C9)	/* GREEK SMALL LETTER OMEGA */ \
1768	    UNI(0x7A, 0x03C2)	/* GREEK SMALL LETTER FINAL SIGMA */ \
1769	    UNI(0x7B, 0x03CD)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
1770	    UNI(0x7C, 0x03CE)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
1771	    UNI(0x7D, 0x0384)	/* GREEK TONOS */ \
1772	    XXX(0x7E, UNDEF)	/* reserved */ \
1773	} \
1774	end_CODEPAGE()
1775
1776#define unmap_DEC_Greek_Supp(code,dft) \
1777	switch (code) { \
1778	    MAP(0x24, 0x1B)	/* EURO SIGN */ \
1779	    MAP(0x26, 0x1B)	/* BROKEN BAR */ \
1780	    MAP(0x28, 0xA4)	/* CURRENCY SIGN */ \
1781	    MAP(0x2C, 0x1B)	/* reserved */ \
1782	    MAP(0x2D, 0x1B)	/* reserved */ \
1783	    MAP(0x2E, 0x1B)	/* reserved */ \
1784	    MAP(0x2F, 0x1B)	/* reserved */ \
1785	    MAP(0x34, 0x1B)	/* reserved */ \
1786	    MAP(0x38, 0x1B)	/* reserved */ \
1787	    MAP(0x3E, 0x1B)	/* reserved */ \
1788	    MAP(0x40, 0xD0)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
1789	    MAP(0x41, 0x76)	/* GREEK CAPITAL LETTER ALPHA */ \
1790	    MAP(0x42, 0x77)	/* GREEK CAPITAL LETTER BETA */ \
1791	    MAP(0x43, 0x78)	/* GREEK CAPITAL LETTER GAMMA */ \
1792	    MAP(0x44, 0x79)	/* GREEK CAPITAL LETTER DELTA */ \
1793	    MAP(0x45, 0x7A)	/* GREEK CAPITAL LETTER EPSILON */ \
1794	    MAP(0x46, 0x7B)	/* GREEK CAPITAL LETTER ZETA */ \
1795	    MAP(0x47, 0x7C)	/* GREEK CAPITAL LETTER ETA */ \
1796	    MAP(0x48, 0x7D)	/* GREEK CAPITAL LETTER THETA */ \
1797	    MAP(0x49, 0x7E)	/* GREEK CAPITAL LETTER IOTA */ \
1798	    MAP(0x4A, 0x7F)	/* GREEK CAPITAL LETTER KAPPA */ \
1799	    MAP(0x4B, 0xA2)	/* GREEK CAPITAL LETTER LAMDA */ \
1800	    MAP(0x4C, 0xA3)	/* GREEK CAPITAL LETTER MU */ \
1801	    MAP(0x4D, 0xA4)	/* GREEK CAPITAL LETTER NU */ \
1802	    MAP(0x4E, 0xA5)	/* GREEK CAPITAL LETTER XI */ \
1803	    MAP(0x4F, 0xA6)	/* GREEK CAPITAL LETTER OMICRON */ \
1804	    MAP(0x50, 0x1B)	/* reserved */ \
1805	    MAP(0x51, 0xA7)	/* GREEK CAPITAL LETTER PI */ \
1806	    MAP(0x52, 0xA8)	/* GREEK CAPITAL LETTER RHO */ \
1807	    MAP(0x53, 0xA9)	/* GREEK CAPITAL LETTER SIGMA */ \
1808	    MAP(0x54, 0xAA)	/* GREEK CAPITAL LETTER TAU */ \
1809	    MAP(0x55, 0xAB)	/* GREEK CAPITAL LETTER UPSILON */ \
1810	    MAP(0x56, 0xAC)	/* GREEK CAPITAL LETTER PHI */ \
1811	    MAP(0x57, 0xAD)	/* GREEK CAPITAL LETTER CHI */ \
1812	    MAP(0x58, 0xAE)	/* GREEK CAPITAL LETTER PSI */ \
1813	    MAP(0x59, 0xAF)	/* GREEK CAPITAL LETTER OMEGA */ \
1814	    MAP(0x5A, 0xB2)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
1815	    MAP(0x5B, 0xB3)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
1816	    MAP(0x5C, 0xB4)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
1817	    MAP(0x5D, 0xB5)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
1818	    MAP(0x5E, 0x1B)	/* reserved */ \
1819	    MAP(0x5F, 0xD2)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
1820	    MAP(0x60, 0xD1)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
1821	    MAP(0x61, 0xB7)	/* GREEK SMALL LETTER ALPHA */ \
1822	    MAP(0x62, 0xB8)	/* GREEK SMALL LETTER BETA */ \
1823	    MAP(0x63, 0xB9)	/* GREEK SMALL LETTER GAMMA */ \
1824	    MAP(0x64, 0xBA)	/* GREEK SMALL LETTER DELTA */ \
1825	    MAP(0x65, 0xBB)	/* GREEK SMALL LETTER EPSILON */ \
1826	    MAP(0x66, 0xBC)	/* GREEK SMALL LETTER ZETA */ \
1827	    MAP(0x67, 0xBD)	/* GREEK SMALL LETTER ETA */ \
1828	    MAP(0x68, 0xBE)	/* GREEK SMALL LETTER THETA */ \
1829	    MAP(0x69, 0xBF)	/* GREEK SMALL LETTER IOTA */ \
1830	    MAP(0x6A, 0xC0)	/* GREEK SMALL LETTER KAPPA */ \
1831	    MAP(0x6B, 0xC1)	/* GREEK SMALL LETTER LAMDA */ \
1832	    MAP(0x6C, 0xC2)	/* GREEK SMALL LETTER MU */ \
1833	    MAP(0x6D, 0xC3)	/* GREEK SMALL LETTER NU */ \
1834	    MAP(0x6E, 0xC4)	/* GREEK SMALL LETTER XI */ \
1835	    MAP(0x6F, 0xC5)	/* GREEK SMALL LETTER OMICRON */ \
1836	    MAP(0x70, 0x1B)	/* reserved */ \
1837	    MAP(0x71, 0xC6)	/* GREEK SMALL LETTER PI */ \
1838	    MAP(0x72, 0xC7)	/* GREEK SMALL LETTER RHO */ \
1839	    MAP(0x73, 0xC9)	/* GREEK SMALL LETTER SIGMA */ \
1840	    MAP(0x74, 0xCA)	/* GREEK SMALL LETTER TAU */ \
1841	    MAP(0x75, 0xCB)	/* GREEK SMALL LETTER UPSILON */ \
1842	    MAP(0x76, 0xCC)	/* GREEK SMALL LETTER PHI */ \
1843	    MAP(0x77, 0xCD)	/* GREEK SMALL LETTER CHI */ \
1844	    MAP(0x78, 0xCE)	/* GREEK SMALL LETTER PSI */ \
1845	    MAP(0x79, 0xCF)	/* GREEK SMALL LETTER OMEGA */ \
1846	    MAP(0x7A, 0xC8)	/* GREEK SMALL LETTER FINAL SIGMA */ \
1847	    MAP(0x7B, 0xD3)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
1848	    MAP(0x7C, 0xD4)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
1849	    MAP(0x7D, 0x96)	/* GREEK TONOS */ \
1850	    MAP(0x7E, 0x1B)	/* reserved */ \
1851	    default: dft; break; \
1852	}
1853
1854/*
1855 * figure A-22 "DEC Hebrew Supplemental Character Set"
1856 */
1857#define map_DEC_Hebrew_Supp(code) \
1858	begin_CODEPAGE(94) \
1859	switch (code) { \
1860	    UNI(0x21, 0x00A1)	/* INVERTED EXCLAMATION MARK */ \
1861	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
1862	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
1863	    XXX(0x24, UNDEF)	/* CURRENCY SIGN */ \
1864	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
1865	    XXX(0x26, UNDEF)	/* BROKEN BAR */ \
1866	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
1867	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
1868	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
1869	    UNI(0x2A, 0x00D7)	/* MULTIPLICATION SIGN */ \
1870	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1871	    XXX(0x2C, UNDEF)	/* NOT SIGN */ \
1872	    XXX(0x2D, UNDEF)	/* SOFT HYPHEN */ \
1873	    XXX(0x2E, UNDEF)	/* REGISTERED SIGN */ \
1874	    XXX(0x2F, UNDEF)	/* MACRON */ \
1875	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
1876	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
1877	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
1878	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
1879	    XXX(0x34, UNDEF)	/* ACUTE ACCENT */ \
1880	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
1881	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
1882	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
1883	    XXX(0x38, UNDEF)	/* CEDILLA */ \
1884	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
1885	    UNI(0x3A, 0x00F7)	/* DIVISION SIGN */ \
1886	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
1887	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
1888	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
1889	    XXX(0x3E, UNDEF)	/* VULGAR FRACTION THREE QUARTERS */ \
1890	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
1891	    XXX(0x40, UNDEF)	/* reserved */ \
1892	    XXX(0x41, UNDEF)	/* reserved */ \
1893	    XXX(0x42, UNDEF)	/* reserved */ \
1894	    XXX(0x43, UNDEF)	/* reserved */ \
1895	    XXX(0x44, UNDEF)	/* reserved */ \
1896	    XXX(0x45, UNDEF)	/* reserved */ \
1897	    XXX(0x46, UNDEF)	/* reserved */ \
1898	    XXX(0x47, UNDEF)	/* reserved */ \
1899	    XXX(0x48, UNDEF)	/* reserved */ \
1900	    XXX(0x49, UNDEF)	/* reserved */ \
1901	    XXX(0x4A, UNDEF)	/* reserved */ \
1902	    XXX(0x4B, UNDEF)	/* reserved */ \
1903	    XXX(0x4C, UNDEF)	/* reserved */ \
1904	    XXX(0x4D, UNDEF)	/* reserved */ \
1905	    XXX(0x4E, UNDEF)	/* reserved */ \
1906	    XXX(0x4F, UNDEF)	/* reserved */ \
1907	    XXX(0x50, UNDEF)	/* reserved */ \
1908	    XXX(0x51, UNDEF)	/* reserved */ \
1909	    XXX(0x52, UNDEF)	/* reserved */ \
1910	    XXX(0x53, UNDEF)	/* reserved */ \
1911	    XXX(0x54, UNDEF)	/* reserved */ \
1912	    XXX(0x55, UNDEF)	/* reserved */ \
1913	    XXX(0x56, UNDEF)	/* reserved */ \
1914	    XXX(0x57, UNDEF)	/* reserved */ \
1915	    XXX(0x58, UNDEF)	/* reserved */ \
1916	    XXX(0x59, UNDEF)	/* reserved */ \
1917	    XXX(0x5A, UNDEF)	/* reserved */ \
1918	    XXX(0x5B, UNDEF)	/* reserved */ \
1919	    XXX(0x5C, UNDEF)	/* reserved */ \
1920	    XXX(0x5D, UNDEF)	/* reserved */ \
1921	    XXX(0x5E, UNDEF)	/* reserved */ \
1922	    XXX(0x5F, UNDEF)	/* reserved */ \
1923	    UNI(0x60, 0x05D0)	/* HEBREW LETTER ALEF */ \
1924	    UNI(0x61, 0x05D1)	/* HEBREW LETTER BET */ \
1925	    UNI(0x62, 0x05D2)	/* HEBREW LETTER GIMEL */ \
1926	    UNI(0x63, 0x05D3)	/* HEBREW LETTER DALET */ \
1927	    UNI(0x64, 0x05D4)	/* HEBREW LETTER HE */ \
1928	    UNI(0x65, 0x05D5)	/* HEBREW LETTER VAV */ \
1929	    UNI(0x66, 0x05D6)	/* HEBREW LETTER ZAYIN */ \
1930	    UNI(0x67, 0x05D7)	/* HEBREW LETTER HET */ \
1931	    UNI(0x68, 0x05D8)	/* HEBREW LETTER TET */ \
1932	    UNI(0x69, 0x05D9)	/* HEBREW LETTER YOD */ \
1933	    UNI(0x6A, 0x05DA)	/* HEBREW LETTER FINAL KAF */ \
1934	    UNI(0x6B, 0x05DB)	/* HEBREW LETTER KAF */ \
1935	    UNI(0x6C, 0x05DC)	/* HEBREW LETTER LAMED */ \
1936	    UNI(0x6D, 0x05DD)	/* HEBREW LETTER FINAL MEM */ \
1937	    UNI(0x6E, 0x05DE)	/* HEBREW LETTER MEM */ \
1938	    UNI(0x6F, 0x05DF)	/* HEBREW LETTER FINAL NUN */ \
1939	    UNI(0x70, 0x05E0)	/* HEBREW LETTER NUN */ \
1940	    UNI(0x71, 0x05E1)	/* HEBREW LETTER SAMEKH */ \
1941	    UNI(0x72, 0x05E2)	/* HEBREW LETTER AYIN */ \
1942	    UNI(0x73, 0x05E3)	/* HEBREW LETTER FINAL PE */ \
1943	    UNI(0x74, 0x05E4)	/* HEBREW LETTER PE */ \
1944	    UNI(0x75, 0x05E5)	/* HEBREW LETTER FINAL TSADI */ \
1945	    UNI(0x76, 0x05E6)	/* HEBREW LETTER TSADI */ \
1946	    UNI(0x77, 0x05E7)	/* HEBREW LETTER QOF */ \
1947	    UNI(0x78, 0x05E8)	/* HEBREW LETTER RESH */ \
1948	    UNI(0x79, 0x05E9)	/* HEBREW LETTER SHIN */ \
1949	    UNI(0x7A, 0x05EA)	/* HEBREW LETTER TAV */ \
1950	    XXX(0x7B, UNDEF)	/* reserved */ \
1951	    XXX(0x7C, UNDEF)	/* reserved */ \
1952	    XXX(0x7D, UNDEF)	/* reserved */ \
1953	    XXX(0x7E, UNDEF)	/* reserved */ \
1954	} \
1955	end_CODEPAGE()
1956
1957#define unmap_DEC_Hebrew_Supp(code,dft) \
1958	switch (code) { \
1959	    MAP(0x24, 0x1B)	/* CURRENCY SIGN */ \
1960	    MAP(0x26, 0x1B)	/* BROKEN BAR */ \
1961	    MAP(0x28, 0xA4)	/* DIAERESIS */ \
1962	    MAP(0x2C, 0x1B)	/* NOT SIGN */ \
1963	    MAP(0x2D, 0x1B)	/* SOFT HYPHEN */ \
1964	    MAP(0x2E, 0x1B)	/* REGISTERED SIGN */ \
1965	    MAP(0x2F, 0x1B)	/* MACRON */ \
1966	    MAP(0x34, 0x1B)	/* ACUTE ACCENT */ \
1967	    MAP(0x38, 0x1B)	/* CEDILLA */ \
1968	    MAP(0x3E, 0x1B)	/* VULGAR FRACTION THREE QUARTERS */ \
1969	    MAP(0x40, 0x1B)	/* reserved */ \
1970	    MAP(0x41, 0x1B)	/* reserved */ \
1971	    MAP(0x42, 0x1B)	/* reserved */ \
1972	    MAP(0x43, 0x1B)	/* reserved */ \
1973	    MAP(0x44, 0x1B)	/* reserved */ \
1974	    MAP(0x45, 0x1B)	/* reserved */ \
1975	    MAP(0x46, 0x1B)	/* reserved */ \
1976	    MAP(0x47, 0x1B)	/* reserved */ \
1977	    MAP(0x48, 0x1B)	/* reserved */ \
1978	    MAP(0x49, 0x1B)	/* reserved */ \
1979	    MAP(0x4A, 0x1B)	/* reserved */ \
1980	    MAP(0x4B, 0x1B)	/* reserved */ \
1981	    MAP(0x4C, 0x1B)	/* reserved */ \
1982	    MAP(0x4D, 0x1B)	/* reserved */ \
1983	    MAP(0x4E, 0x1B)	/* reserved */ \
1984	    MAP(0x4F, 0x1B)	/* reserved */ \
1985	    MAP(0x50, 0x1B)	/* reserved */ \
1986	    MAP(0x51, 0x1B)	/* reserved */ \
1987	    MAP(0x52, 0x1B)	/* reserved */ \
1988	    MAP(0x53, 0x1B)	/* reserved */ \
1989	    MAP(0x54, 0x1B)	/* reserved */ \
1990	    MAP(0x55, 0x1B)	/* reserved */ \
1991	    MAP(0x56, 0x1B)	/* reserved */ \
1992	    MAP(0x57, 0x1B)	/* reserved */ \
1993	    MAP(0x58, 0x1B)	/* reserved */ \
1994	    MAP(0x59, 0x1B)	/* reserved */ \
1995	    MAP(0x5A, 0x1B)	/* reserved */ \
1996	    MAP(0x5B, 0x1B)	/* reserved */ \
1997	    MAP(0x5C, 0x1B)	/* reserved */ \
1998	    MAP(0x5D, 0x1B)	/* reserved */ \
1999	    MAP(0x5E, 0x1B)	/* reserved */ \
2000	    MAP(0x5F, 0x1B)	/* reserved */ \
2001	    MAP(0x60, 0x53)	/* HEBREW LETTER ALEF */ \
2002	    MAP(0x61, 0x54)	/* HEBREW LETTER BET */ \
2003	    MAP(0x62, 0x55)	/* HEBREW LETTER GIMEL */ \
2004	    MAP(0x63, 0x56)	/* HEBREW LETTER DALET */ \
2005	    MAP(0x64, 0x57)	/* HEBREW LETTER HE */ \
2006	    MAP(0x65, 0x58)	/* HEBREW LETTER VAV */ \
2007	    MAP(0x66, 0x59)	/* HEBREW LETTER ZAYIN */ \
2008	    MAP(0x67, 0x5A)	/* HEBREW LETTER HET */ \
2009	    MAP(0x68, 0x5B)	/* HEBREW LETTER TET */ \
2010	    MAP(0x69, 0x5C)	/* HEBREW LETTER YOD */ \
2011	    MAP(0x6A, 0x5D)	/* HEBREW LETTER FINAL KAF */ \
2012	    MAP(0x6B, 0x5E)	/* HEBREW LETTER KAF */ \
2013	    MAP(0x6C, 0x5F)	/* HEBREW LETTER LAMED */ \
2014	    MAP(0x6D, 0x60)	/* HEBREW LETTER FINAL MEM */ \
2015	    MAP(0x6E, 0x61)	/* HEBREW LETTER MEM */ \
2016	    MAP(0x6F, 0x62)	/* HEBREW LETTER FINAL NUN */ \
2017	    MAP(0x70, 0x63)	/* HEBREW LETTER NUN */ \
2018	    MAP(0x71, 0x64)	/* HEBREW LETTER SAMEKH */ \
2019	    MAP(0x72, 0x65)	/* HEBREW LETTER AYIN */ \
2020	    MAP(0x73, 0x66)	/* HEBREW LETTER FINAL PE */ \
2021	    MAP(0x74, 0x67)	/* HEBREW LETTER PE */ \
2022	    MAP(0x75, 0x68)	/* HEBREW LETTER FINAL TSADI */ \
2023	    MAP(0x76, 0x69)	/* HEBREW LETTER TSADI */ \
2024	    MAP(0x77, 0x6A)	/* HEBREW LETTER QOF */ \
2025	    MAP(0x78, 0x6B)	/* HEBREW LETTER RESH */ \
2026	    MAP(0x79, 0x6C)	/* HEBREW LETTER SHIN */ \
2027	    MAP(0x7A, 0x6D)	/* HEBREW LETTER TAV */ \
2028	    MAP(0x7B, 0x1B)	/* reserved */ \
2029	    MAP(0x7C, 0x1B)	/* reserved */ \
2030	    MAP(0x7D, 0x1B)	/* reserved */ \
2031	    MAP(0x7E, 0x1B)	/* reserved */ \
2032	    default: dft; break; \
2033	}
2034
2035/*
2036 * figure A-27 "DEC 8-Bit Turkish Supplemental Character Set"
2037 */
2038#define map_DEC_Turkish_Supp(code) \
2039	begin_CODEPAGE(94) \
2040	switch (code) { \
2041	    UNI(0x21, 0x00A1)	/* INVERTED EXCLAMATION MARK */ \
2042	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
2043	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
2044	    XXX(0x24, UNDEF)	/* reserved */ \
2045	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
2046	    XXX(0x26, UNDEF)	/* reserved */ \
2047	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
2048	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
2049	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
2050	    UNI(0x2A, 0x00AA)	/* FEMININE ORDINAL INDICATOR */ \
2051	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
2052	    XXX(0x2C, UNDEF)	/* reserved */ \
2053	    XXX(0x2D, UNDEF)	/* reserved */ \
2054	    UNI(0x2E, 0x0130)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
2055	    XXX(0x2F, UNDEF)	/* reserved */ \
2056	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
2057	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
2058	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
2059	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
2060	    XXX(0x34, UNDEF)	/* reserved */ \
2061	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
2062	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
2063	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
2064	    XXX(0x38, UNDEF)	/* reserved */ \
2065	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
2066	    UNI(0x3A, 0x00BA)	/* MASCULINE ORDINAL INDICATOR */ \
2067	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
2068	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
2069	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
2070	    UNI(0x3E, 0x0131)	/* LATIN SMALL LETTER DOTLESS I */ \
2071	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
2072	    UNI(0x40, 0x00C0)	/* LATIN CAPITAL LETTER A WITH GRAVE */ \
2073	    UNI(0x41, 0x00C1)	/* LATIN CAPITAL LETTER A WITH ACUTE */ \
2074	    UNI(0x42, 0x00C2)	/* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ \
2075	    UNI(0x43, 0x00C3)	/* LATIN CAPITAL LETTER A WITH TILDE */ \
2076	    UNI(0x44, 0x00C4)	/* LATIN CAPITAL LETTER A WITH DIAERESIS */ \
2077	    UNI(0x45, 0x00C5)	/* LATIN CAPITAL LETTER A WITH RING ABOVE */ \
2078	    UNI(0x46, 0x00C6)	/* LATIN CAPITAL LETTER AE */ \
2079	    UNI(0x47, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
2080	    UNI(0x48, 0x00C8)	/* LATIN CAPITAL LETTER E WITH GRAVE */ \
2081	    UNI(0x49, 0x00C9)	/* LATIN CAPITAL LETTER E WITH ACUTE */ \
2082	    UNI(0x4A, 0x00CA)	/* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ \
2083	    UNI(0x4B, 0x00CB)	/* LATIN CAPITAL LETTER E WITH DIAERESIS */ \
2084	    UNI(0x4C, 0x00CC)	/* LATIN CAPITAL LETTER I WITH GRAVE */ \
2085	    UNI(0x4D, 0x00CD)	/* LATIN CAPITAL LETTER I WITH ACUTE */ \
2086	    UNI(0x4E, 0x00CE)	/* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ \
2087	    UNI(0x4F, 0x00CF)	/* LATIN CAPITAL LETTER I WITH DIAERESIS */ \
2088	    UNI(0x50, 0x011E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
2089	    UNI(0x51, 0x00D1)	/* LATIN CAPITAL LETTER N WITH TILDE */ \
2090	    UNI(0x52, 0x00D2)	/* LATIN CAPITAL LETTER O WITH GRAVE */ \
2091	    UNI(0x53, 0x00D3)	/* LATIN CAPITAL LETTER O WITH ACUTE */ \
2092	    UNI(0x54, 0x00D4)	/* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ \
2093	    UNI(0x55, 0x00D5)	/* LATIN CAPITAL LETTER O WITH TILDE */ \
2094	    UNI(0x56, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
2095	    UNI(0x57, 0x0152)	/* LATIN CAPITAL LIGATURE OE */ \
2096	    UNI(0x58, 0x00D8)	/* LATIN CAPITAL LETTER O WITH STROKE */ \
2097	    UNI(0x59, 0x00D9)	/* LATIN CAPITAL LETTER U WITH GRAVE */ \
2098	    UNI(0x5A, 0x00DA)	/* LATIN CAPITAL LETTER U WITH ACUTE */ \
2099	    UNI(0x5B, 0x00DB)	/* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ \
2100	    UNI(0x5C, 0x00DC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
2101	    UNI(0x5D, 0x0178)	/* LATIN CAPITAL LETTER Y WITH DIAERESIS */ \
2102	    UNI(0x5E, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
2103	    UNI(0x5F, 0x00DF)	/* LATIN SMALL LETTER SHARP S */ \
2104	    UNI(0x60, 0x00E0)	/* LATIN SMALL LETTER A WITH GRAVE */ \
2105	    UNI(0x61, 0x00E1)	/* LATIN SMALL LETTER A WITH ACUTE */ \
2106	    UNI(0x62, 0x00E2)	/* LATIN SMALL LETTER A WITH CIRCUMFLEX */ \
2107	    UNI(0x63, 0x00E3)	/* LATIN SMALL LETTER A WITH TILDE */ \
2108	    UNI(0x64, 0x00E4)	/* LATIN SMALL LETTER A WITH DIAERESIS */ \
2109	    UNI(0x65, 0x00E5)	/* LATIN SMALL LETTER A WITH RING ABOVE */ \
2110	    UNI(0x66, 0x00E6)	/* LATIN SMALL LETTER AE */ \
2111	    UNI(0x67, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
2112	    UNI(0x68, 0x00E8)	/* LATIN SMALL LETTER E WITH GRAVE */ \
2113	    UNI(0x69, 0x00E9)	/* LATIN SMALL LETTER E WITH ACUTE */ \
2114	    UNI(0x6A, 0x00EA)	/* LATIN SMALL LETTER E WITH CIRCUMFLEX */ \
2115	    UNI(0x6B, 0x00EB)	/* LATIN SMALL LETTER E WITH DIAERESIS */ \
2116	    UNI(0x6C, 0x00EC)	/* LATIN SMALL LETTER I WITH GRAVE */ \
2117	    UNI(0x6D, 0x00ED)	/* LATIN SMALL LETTER I WITH ACUTE */ \
2118	    UNI(0x6E, 0x00EE)	/* LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
2119	    UNI(0x6F, 0x00EF)	/* LATIN SMALL LETTER I WITH DIAERESIS */ \
2120	    UNI(0x70, 0x011F)	/* LATIN SMALL LETTER G WITH BREVE */ \
2121	    UNI(0x71, 0x00F1)	/* LATIN SMALL LETTER N WITH TILDE */ \
2122	    UNI(0x72, 0x00F2)	/* LATIN SMALL LETTER O WITH GRAVE */ \
2123	    UNI(0x73, 0x00F3)	/* LATIN SMALL LETTER O WITH ACUTE */ \
2124	    UNI(0x74, 0x00F4)	/* LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
2125	    UNI(0x75, 0x00F5)	/* LATIN SMALL LETTER O WITH TILDE */ \
2126	    UNI(0x76, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
2127	    UNI(0x77, 0x0153)	/* LATIN SMALL LIGATURE OE */ \
2128	    UNI(0x78, 0x00F8)	/* LATIN SMALL LETTER O WITH STROKE */ \
2129	    UNI(0x79, 0x00F9)	/* LATIN SMALL LETTER U WITH GRAVE */ \
2130	    UNI(0x7A, 0x00FA)	/* LATIN SMALL LETTER U WITH ACUTE */ \
2131	    UNI(0x7B, 0x00FB)	/* LATIN SMALL LETTER U WITH CIRCUMFLEX */ \
2132	    UNI(0x7C, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
2133	    UNI(0x7D, 0x00FF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
2134	    UNI(0x7E, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
2135	} \
2136	end_CODEPAGE()
2137
2138#define unmap_DEC_Turkish_Supp(code,dft) \
2139	switch (code) { \
2140	    MAP(0x24, 0x1B)	/* reserved */ \
2141	    MAP(0x26, 0x1B)	/* reserved */ \
2142	    MAP(0x28, 0xA4)	/* DIAERESIS */ \
2143	    MAP(0x2C, 0x1B)	/* reserved */ \
2144	    MAP(0x2D, 0x1B)	/* reserved */ \
2145	    MAP(0x2E, 0x4F)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
2146	    MAP(0x2F, 0x1B)	/* reserved */ \
2147	    MAP(0x34, 0x1B)	/* reserved */ \
2148	    MAP(0x38, 0x1B)	/* reserved */ \
2149	    MAP(0x3E, 0x51)	/* LATIN SMALL LETTER DOTLESS I */ \
2150	    MAP(0x50, 0x4E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
2151	    MAP(0x57, 0x97)	/* LATIN CAPITAL LIGATURE OE */ \
2152	    MAP(0x5D, 0x98)	/* LATIN CAPITAL LETTER Y WITH DIAERESIS */ \
2153	    MAP(0x5E, 0x9F)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
2154	    MAP(0x70, 0x50)	/* LATIN SMALL LETTER G WITH BREVE */ \
2155	    MAP(0x77, 0x99)	/* LATIN SMALL LIGATURE OE */ \
2156	    MAP(0x7D, 0xFF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
2157	    MAP(0x7E, 0x2A)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
2158	    default: dft; break; \
2159	}
2160
2161/*
2162 * mentioned, but not documented in VT510 manual, etc., this uses
2163 * the ELOT927 table from Kermit 95:
2164 */
2165#define map_NRCS_Greek(code) \
2166	switch (code) { \
2167	    UNI(0x61, 0x0391)	/* CAPITAL GREEK LETTER ALPHA */ \
2168	    UNI(0x62, 0x0392)	/* CAPITAL GREEK LETTER BETA */ \
2169	    UNI(0x63, 0x0393)	/* CAPITAL GREEK LETTER GAMMA */ \
2170	    UNI(0x64, 0x0394)	/* CAPITAL GREEK LETTER DELTA */ \
2171	    UNI(0x65, 0x0395)	/* CAPITAL GREEK LETTER EPSILON */ \
2172	    UNI(0x66, 0x0396)	/* CAPITAL GREEK LETTER ZETA */ \
2173	    UNI(0x67, 0x0397)	/* CAPITAL GREEK LETTER ETA */ \
2174	    UNI(0x68, 0x0398)	/* CAPITAL GREEK LETTER THETA */ \
2175	    UNI(0x69, 0x0399)	/* CAPITAL GREEK LETTER IOTA */ \
2176	    UNI(0x6a, 0x039A)	/* CAPITAL GREEK LETTER KAPPA */ \
2177	    UNI(0x6b, 0x039B)	/* CAPITAL GREEK LETTER LAMDA */ \
2178	    UNI(0x6c, 0x039C)	/* CAPITAL GREEK LETTER MU */ \
2179	    UNI(0x6d, 0x039D)	/* CAPITAL GREEK LETTER NU */ \
2180	    UNI(0x6e, 0x03A7)	/* CAPITAL GREEK LETTER KSI (CHI) */ \
2181	    UNI(0x6f, 0x039F)	/* CAPITAL GREEK LETTER OMICRON */ \
2182	    UNI(0x70, 0x03A0)	/* CAPITAL GREEK LETTER PI */ \
2183	    UNI(0x71, 0x03A1)	/* CAPITAL GREEK LETTER RHO */ \
2184	    UNI(0x72, 0x03A3)	/* CAPITAL GREEK LETTER SIGMA */ \
2185	    UNI(0x73, 0x03A4)	/* CAPITAL GREEK LETTER TAU */ \
2186	    UNI(0x74, 0x03A5)	/* CAPITAL GREEK LETTER UPSILON */ \
2187	    UNI(0x75, 0x03A6)	/* CAPITAL GREEK LETTER FI (PHI) */ \
2188	    UNI(0x76, 0x039E)	/* CAPITAL GREEK LETTER XI */ \
2189	    UNI(0x77, 0x03A8)	/* CAPITAL GREEK LETTER PSI */ \
2190	    UNI(0x78, 0x03A9)	/* CAPITAL GREEK LETTER OMEGA */ \
2191	    XXX(0x79, UNDEF)	/* unused */ \
2192	    XXX(0x7a, UNDEF)	/* unused */ \
2193	}
2194
2195#define unmap_NRCS_Greek(code,dft) \
2196	switch (code) { \
2197	    MAP(0x79,             0x1B) /* unused */ \
2198	    MAP(0x7a,             0x1B) /* unused */ \
2199	    default: dft; break; \
2200	}
2201
2202/*
2203 * figure A-21 "DEC 7-Bit Hebrew Character Set"
2204 */
2205#define map_NRCS_Hebrew(code) \
2206	switch (code) { \
2207	    UNI(0x60, 0x05D0)	/* HEBREW LETTER ALEF */ \
2208	    UNI(0x61, 0x05D1)	/* HEBREW LETTER BET */ \
2209	    UNI(0x62, 0x05D2)	/* HEBREW LETTER GIMEL */ \
2210	    UNI(0x63, 0x05D3)	/* HEBREW LETTER DALET */ \
2211	    UNI(0x64, 0x05D4)	/* HEBREW LETTER HE */ \
2212	    UNI(0x65, 0x05D5)	/* HEBREW LETTER VAV */ \
2213	    UNI(0x66, 0x05D6)	/* HEBREW LETTER ZAYIN */ \
2214	    UNI(0x67, 0x05D7)	/* HEBREW LETTER HET */ \
2215	    UNI(0x68, 0x05D8)	/* HEBREW LETTER TET */ \
2216	    UNI(0x69, 0x05D9)	/* HEBREW LETTER YOD */ \
2217	    UNI(0x6a, 0x05DA)	/* HEBREW LETTER FINAL KAF */ \
2218	    UNI(0x6b, 0x05DB)	/* HEBREW LETTER KAF */ \
2219	    UNI(0x6c, 0x05DC)	/* HEBREW LETTER LAMED */ \
2220	    UNI(0x6d, 0x05DD)	/* HEBREW LETTER FINAL MEM */ \
2221	    UNI(0x6e, 0x05DE)	/* HEBREW LETTER MEM */ \
2222	    UNI(0x6f, 0x05DF)	/* HEBREW LETTER FINAL NUN */ \
2223	    UNI(0x70, 0x05E0)	/* HEBREW LETTER NUN */ \
2224	    UNI(0x71, 0x05E1)	/* HEBREW LETTER SAMEKH */ \
2225	    UNI(0x72, 0x05E2)	/* HEBREW LETTER AYIN */ \
2226	    UNI(0x73, 0x05E3)	/* HEBREW LETTER FINAL PE */ \
2227	    UNI(0x74, 0x05E4)	/* HEBREW LETTER PE */ \
2228	    UNI(0x75, 0x05E5)	/* HEBREW LETTER FINAL TSADI */ \
2229	    UNI(0x76, 0x05E6)	/* HEBREW LETTER TSADI */ \
2230	    UNI(0x77, 0x05E7)	/* HEBREW LETTER QOF */ \
2231	    UNI(0x78, 0x05E8)	/* HEBREW LETTER RESH */ \
2232	    UNI(0x79, 0x05E9)	/* HEBREW LETTER SHIN */ \
2233	    UNI(0x7a, 0x05EA)	/* HEBREW LETTER TAV */ \
2234	}
2235
2236#define unmap_NRCS_Hebrew(code,dft) /* nothing */
2237
2238/*
2239 * figure A-26 "DEC 7-Bit Turkish Character Set"
2240 */
2241#define map_NRCS_Turkish(code) \
2242	switch (code) { \
2243	    UNI(0x26, 0x011F)	/* LATIN SMALL LETTER G WITH BREVE */ \
2244	    UNI(0x40, 0x0130)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
2245	    UNI(0x5b, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
2246	    UNI(0x5c, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
2247	    UNI(0x5d, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
2248	    UNI(0x5e, 0x00dC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
2249	    UNI(0x60, 0x011E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
2250	    UNI(0x7b, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
2251	    UNI(0x7c, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
2252	    UNI(0x7d, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
2253	    UNI(0x7e, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
2254	}
2255
2256#define unmap_NRCS_Turkish(code,dft) /* nothing */
2257#else
2258#define map_DEC_Cyrillic(code)	/* nothing */
2259#define unmap_DEC_Cyrillic(code,dft) dft
2260#define map_DEC_Greek_Supp(code)	/* nothing */
2261#define unmap_DEC_Greek_Supp(code,dft) dft
2262#define map_DEC_Hebrew_Supp(code)	/* nothing */
2263#define unmap_DEC_Hebrew_Supp(code,dft) dft
2264#define map_DEC_Technical(code)	/* nothing */
2265#define unmap_DEC_Technical(code,dft) dft
2266#define map_DEC_Turkish_Supp(code)	/* nothing */
2267#define unmap_DEC_Turkish_Supp(code,dft) dft
2268#define map_ISO_Greek_Supp(code)	/* nothing */
2269#define unmap_ISO_Greek_Supp(code,dft) dft
2270#define map_ISO_Hebrew(code)	/* nothing */
2271#define unmap_ISO_Hebrew(code,dft) dft
2272#define map_ISO_Latin_2(code)	/* nothing */
2273#define unmap_ISO_Latin_2(code,dft) dft
2274#define map_ISO_Latin_5(code)	/* nothing */
2275#define unmap_ISO_Latin_5(code,dft) dft
2276#define map_ISO_Latin_Cyrillic(code)	/* nothing */
2277#define unmap_ISO_Latin_Cyrillic(code,dft) dft
2278#define map_NRCS_Greek(code)	/* nothing */
2279#define unmap_NRCS_Greek(code,dft) dft
2280#define map_NRCS_Hebrew(code)	/* nothing */
2281#define unmap_NRCS_Hebrew(code,dft) dft
2282#define map_NRCS_Turkish(code)	/* nothing */
2283#define unmap_NRCS_Turkish(code,dft) dft
2284#endif /* OPT_WIDE_CHARS */
2285
2286#endif /* included_charsets_h */
2287