Home | History | Annotate | Line # | Download | only in dist
      1 /*
      2  * $XTermId: charsets.h,v 1.35 2024/12/01 23:50:59 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 #define map_JIS_Roman(code) \
    618 	begin_CODEPAGE(94) \
    619 	switch (code) { \
    620 	    UNI(0x5C, 0x00A5)	/* YEN SIGN */ \
    621 	    UNI(0x7E, 0x203E)	/* OVERLINE */ \
    622 	} \
    623 	end_CODEPAGE()
    624 
    625 #define unmap_JIS_Roman(code,dft) /* nothing */
    626 
    627 /*
    628  * Documented as if only GR, but encoded here to allow assignment to GL and GR.
    629  */
    630 #define map_JIS_Katakana(code) \
    631 	begin_CODEPAGE(94) \
    632 	switch (code) { \
    633 	    UNI(0x21, 0xFF61)	/* HALFWIDTH IDEOGRAPHIC FULL STOP */ \
    634 	    UNI(0x22, 0xFF62)	/* HALFWIDTH LEFT CORNER BRACKET */ \
    635 	    UNI(0x23, 0xFF63)	/* HALFWIDTH RIGHT CORNER BRACKET */ \
    636 	    UNI(0x24, 0xFF64)	/* HALFWIDTH IDEOGRAPHIC COMMA */ \
    637 	    UNI(0x25, 0xFF65)	/* HALFWIDTH KATAKANA MIDDLE DOT */ \
    638 	    UNI(0x26, 0xFF66)	/* HALFWIDTH KATAKANA LETTER WO */ \
    639 	    UNI(0x27, 0xFF67)	/* HALFWIDTH KATAKANA LETTER SMALL A */ \
    640 	    UNI(0x28, 0xFF68)	/* HALFWIDTH KATAKANA LETTER SMALL I */ \
    641 	    UNI(0x29, 0xFF69)	/* HALFWIDTH KATAKANA LETTER SMALL U */ \
    642 	    UNI(0x2A, 0xFF6A)	/* HALFWIDTH KATAKANA LETTER SMALL E */ \
    643 	    UNI(0x2B, 0xFF6B)	/* HALFWIDTH KATAKANA LETTER SMALL O */ \
    644 	    UNI(0x2C, 0xFF6C)	/* HALFWIDTH KATAKANA LETTER SMALL YA */ \
    645 	    UNI(0x2D, 0xFF6D)	/* HALFWIDTH KATAKANA LETTER SMALL YU */ \
    646 	    UNI(0x2E, 0xFF6E)	/* HALFWIDTH KATAKANA LETTER SMALL YO */ \
    647 	    UNI(0x2F, 0xFF6F)	/* HALFWIDTH KATAKANA LETTER SMALL TU */ \
    648 	    UNI(0x30, 0xFF70)	/* HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK */ \
    649 	    UNI(0x31, 0xFF71)	/* HALFWIDTH KATAKANA LETTER A */ \
    650 	    UNI(0x32, 0xFF72)	/* HALFWIDTH KATAKANA LETTER I */ \
    651 	    UNI(0x33, 0xFF73)	/* HALFWIDTH KATAKANA LETTER U */ \
    652 	    UNI(0x34, 0xFF74)	/* HALFWIDTH KATAKANA LETTER E */ \
    653 	    UNI(0x35, 0xFF75)	/* HALFWIDTH KATAKANA LETTER O */ \
    654 	    UNI(0x36, 0xFF76)	/* HALFWIDTH KATAKANA LETTER KA */ \
    655 	    UNI(0x37, 0xFF77)	/* HALFWIDTH KATAKANA LETTER KI */ \
    656 	    UNI(0x38, 0xFF78)	/* HALFWIDTH KATAKANA LETTER KU */ \
    657 	    UNI(0x39, 0xFF79)	/* HALFWIDTH KATAKANA LETTER KE */ \
    658 	    UNI(0x3A, 0xFF7A)	/* HALFWIDTH KATAKANA LETTER KO */ \
    659 	    UNI(0x3B, 0xFF7B)	/* HALFWIDTH KATAKANA LETTER SA */ \
    660 	    UNI(0x3C, 0xFF7C)	/* HALFWIDTH KATAKANA LETTER SI */ \
    661 	    UNI(0x3D, 0xFF7D)	/* HALFWIDTH KATAKANA LETTER SU */ \
    662 	    UNI(0x3E, 0xFF7E)	/* HALFWIDTH KATAKANA LETTER SE */ \
    663 	    UNI(0x3F, 0xFF7F)	/* HALFWIDTH KATAKANA LETTER SO */ \
    664 	    UNI(0x40, 0xFF80)	/* HALFWIDTH KATAKANA LETTER TA */ \
    665 	    UNI(0x41, 0xFF81)	/* HALFWIDTH KATAKANA LETTER TI */ \
    666 	    UNI(0x42, 0xFF82)	/* HALFWIDTH KATAKANA LETTER TU */ \
    667 	    UNI(0x43, 0xFF83)	/* HALFWIDTH KATAKANA LETTER TE */ \
    668 	    UNI(0x44, 0xFF84)	/* HALFWIDTH KATAKANA LETTER TO */ \
    669 	    UNI(0x45, 0xFF85)	/* HALFWIDTH KATAKANA LETTER NA */ \
    670 	    UNI(0x46, 0xFF86)	/* HALFWIDTH KATAKANA LETTER NI */ \
    671 	    UNI(0x47, 0xFF87)	/* HALFWIDTH KATAKANA LETTER NU */ \
    672 	    UNI(0x48, 0xFF88)	/* HALFWIDTH KATAKANA LETTER NE */ \
    673 	    UNI(0x49, 0xFF89)	/* HALFWIDTH KATAKANA LETTER NO */ \
    674 	    UNI(0x4A, 0xFF8A)	/* HALFWIDTH KATAKANA LETTER HA */ \
    675 	    UNI(0x4B, 0xFF8B)	/* HALFWIDTH KATAKANA LETTER HI */ \
    676 	    UNI(0x4C, 0xFF8C)	/* HALFWIDTH KATAKANA LETTER HU */ \
    677 	    UNI(0x4D, 0xFF8D)	/* HALFWIDTH KATAKANA LETTER HE */ \
    678 	    UNI(0x4E, 0xFF8E)	/* HALFWIDTH KATAKANA LETTER HO */ \
    679 	    UNI(0x4F, 0xFF8F)	/* HALFWIDTH KATAKANA LETTER MA */ \
    680 	    UNI(0x50, 0xFF90)	/* HALFWIDTH KATAKANA LETTER MI */ \
    681 	    UNI(0x51, 0xFF91)	/* HALFWIDTH KATAKANA LETTER MU */ \
    682 	    UNI(0x52, 0xFF92)	/* HALFWIDTH KATAKANA LETTER ME */ \
    683 	    UNI(0x53, 0xFF93)	/* HALFWIDTH KATAKANA LETTER MO */ \
    684 	    UNI(0x54, 0xFF94)	/* HALFWIDTH KATAKANA LETTER YA */ \
    685 	    UNI(0x55, 0xFF95)	/* HALFWIDTH KATAKANA LETTER YU */ \
    686 	    UNI(0x56, 0xFF96)	/* HALFWIDTH KATAKANA LETTER YO */ \
    687 	    UNI(0x57, 0xFF97)	/* HALFWIDTH KATAKANA LETTER RA */ \
    688 	    UNI(0x58, 0xFF98)	/* HALFWIDTH KATAKANA LETTER RI */ \
    689 	    UNI(0x59, 0xFF99)	/* HALFWIDTH KATAKANA LETTER RU */ \
    690 	    UNI(0x5A, 0xFF9A)	/* HALFWIDTH KATAKANA LETTER RE */ \
    691 	    UNI(0x5B, 0xFF9B)	/* HALFWIDTH KATAKANA LETTER RO */ \
    692 	    UNI(0x5C, 0xFF9C)	/* HALFWIDTH KATAKANA LETTER WA */ \
    693 	    UNI(0x5D, 0xFF9D)	/* HALFWIDTH KATAKANA LETTER N */ \
    694 	    UNI(0x5E, 0xFF9E)	/* HALFWIDTH KATAKANA VOICED SOUND MARK */ \
    695 	    UNI(0x5F, 0xFF9F)	/* HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK */ \
    696 	    XXX(0x60, UNDEF) \
    697 	    XXX(0x61, UNDEF) \
    698 	    XXX(0x62, UNDEF) \
    699 	    XXX(0x63, UNDEF) \
    700 	    XXX(0x64, UNDEF) \
    701 	    XXX(0x65, UNDEF) \
    702 	    XXX(0x66, UNDEF) \
    703 	    XXX(0x67, UNDEF) \
    704 	    XXX(0x68, UNDEF) \
    705 	    XXX(0x69, UNDEF) \
    706 	    XXX(0x6A, UNDEF) \
    707 	    XXX(0x6B, UNDEF) \
    708 	    XXX(0x6C, UNDEF) \
    709 	    XXX(0x6D, UNDEF) \
    710 	    XXX(0x6E, UNDEF) \
    711 	    XXX(0x6F, UNDEF) \
    712 	    XXX(0x70, UNDEF) \
    713 	    XXX(0x71, UNDEF) \
    714 	    XXX(0x72, UNDEF) \
    715 	    XXX(0x73, UNDEF) \
    716 	    XXX(0x74, UNDEF) \
    717 	    XXX(0x75, UNDEF) \
    718 	    XXX(0x76, UNDEF) \
    719 	    XXX(0x77, UNDEF) \
    720 	    XXX(0x78, UNDEF) \
    721 	    XXX(0x79, UNDEF) \
    722 	    XXX(0x7A, UNDEF) \
    723 	    XXX(0x7B, UNDEF) \
    724 	    XXX(0x7C, UNDEF) \
    725 	    XXX(0x7D, UNDEF) \
    726 	} \
    727 	end_CODEPAGE()
    728 
    729 #define unmap_JIS_Katakana(code,dft) /* nothing */
    730 
    731 /*
    732  * ISO Latin/Cyrillic is 8859-5
    733  */
    734 #define map_ISO_Latin_Cyrillic(code) \
    735 	begin_CODEPAGE(96) \
    736 	switch (code) { \
    737 	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
    738 	    UNI(0x21, 0x0401)	/* CYRILLIC CAPITAL LETTER IO */ \
    739 	    UNI(0x22, 0x0402)	/* CYRILLIC CAPITAL LETTER DJE */ \
    740 	    UNI(0x23, 0x0403)	/* CYRILLIC CAPITAL LETTER GJE */ \
    741 	    UNI(0x24, 0x0404)	/* CYRILLIC CAPITAL LETTER UKRAINIAN IE */ \
    742 	    UNI(0x25, 0x0405)	/* CYRILLIC CAPITAL LETTER DZE */ \
    743 	    UNI(0x26, 0x0406)	/* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ \
    744 	    UNI(0x27, 0x0407)	/* CYRILLIC CAPITAL LETTER YI */ \
    745 	    UNI(0x28, 0x0408)	/* CYRILLIC CAPITAL LETTER JE */ \
    746 	    UNI(0x29, 0x0409)	/* CYRILLIC CAPITAL LETTER LJE */ \
    747 	    UNI(0x2A, 0x040A)	/* CYRILLIC CAPITAL LETTER NJE */ \
    748 	    UNI(0x2B, 0x040B)	/* CYRILLIC CAPITAL LETTER TSHE */ \
    749 	    UNI(0x2C, 0x040C)	/* CYRILLIC CAPITAL LETTER KJE */ \
    750 	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
    751 	    UNI(0x2E, 0x040E)	/* CYRILLIC CAPITAL LETTER SHORT U */ \
    752 	    UNI(0x2F, 0x040F)	/* CYRILLIC CAPITAL LETTER DZHE */ \
    753 	    UNI(0x30, 0x0410)	/* CYRILLIC CAPITAL LETTER A */ \
    754 	    UNI(0x31, 0x0411)	/* CYRILLIC CAPITAL LETTER BE */ \
    755 	    UNI(0x32, 0x0412)	/* CYRILLIC CAPITAL LETTER VE */ \
    756 	    UNI(0x33, 0x0413)	/* CYRILLIC CAPITAL LETTER GHE */ \
    757 	    UNI(0x34, 0x0414)	/* CYRILLIC CAPITAL LETTER DE */ \
    758 	    UNI(0x35, 0x0415)	/* CYRILLIC CAPITAL LETTER IE */ \
    759 	    UNI(0x36, 0x0416)	/* CYRILLIC CAPITAL LETTER ZHE */ \
    760 	    UNI(0x37, 0x0417)	/* CYRILLIC CAPITAL LETTER ZE */ \
    761 	    UNI(0x38, 0x0418)	/* CYRILLIC CAPITAL LETTER I */ \
    762 	    UNI(0x39, 0x0419)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
    763 	    UNI(0x3A, 0x041A)	/* CYRILLIC CAPITAL LETTER KA */ \
    764 	    UNI(0x3B, 0x041B)	/* CYRILLIC CAPITAL LETTER EL */ \
    765 	    UNI(0x3C, 0x041C)	/* CYRILLIC CAPITAL LETTER EM */ \
    766 	    UNI(0x3D, 0x041D)	/* CYRILLIC CAPITAL LETTER EN */ \
    767 	    UNI(0x3E, 0x041E)	/* CYRILLIC CAPITAL LETTER O */ \
    768 	    UNI(0x3F, 0x041F)	/* CYRILLIC CAPITAL LETTER PE */ \
    769 	    UNI(0x40, 0x0420)	/* CYRILLIC CAPITAL LETTER ER */ \
    770 	    UNI(0x41, 0x0421)	/* CYRILLIC CAPITAL LETTER ES */ \
    771 	    UNI(0x42, 0x0422)	/* CYRILLIC CAPITAL LETTER TE */ \
    772 	    UNI(0x43, 0x0423)	/* CYRILLIC CAPITAL LETTER U */ \
    773 	    UNI(0x44, 0x0424)	/* CYRILLIC CAPITAL LETTER EF */ \
    774 	    UNI(0x45, 0x0425)	/* CYRILLIC CAPITAL LETTER HA */ \
    775 	    UNI(0x46, 0x0426)	/* CYRILLIC CAPITAL LETTER TSE */ \
    776 	    UNI(0x47, 0x0427)	/* CYRILLIC CAPITAL LETTER CHE */ \
    777 	    UNI(0x48, 0x0428)	/* CYRILLIC CAPITAL LETTER SHA */ \
    778 	    UNI(0x49, 0x0429)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
    779 	    UNI(0x4A, 0x042A)	/* CYRILLIC CAPITAL LETTER HARD SIGN */ \
    780 	    UNI(0x4B, 0x042B)	/* CYRILLIC CAPITAL LETTER YERU */ \
    781 	    UNI(0x4C, 0x042C)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
    782 	    UNI(0x4D, 0x042D)	/* CYRILLIC CAPITAL LETTER E */ \
    783 	    UNI(0x4E, 0x042E)	/* CYRILLIC CAPITAL LETTER YU */ \
    784 	    UNI(0x4F, 0x042F)	/* CYRILLIC CAPITAL LETTER YA */ \
    785 	    UNI(0x50, 0x0430)	/* CYRILLIC SMALL LETTER A */ \
    786 	    UNI(0x51, 0x0431)	/* CYRILLIC SMALL LETTER BE */ \
    787 	    UNI(0x52, 0x0432)	/* CYRILLIC SMALL LETTER VE */ \
    788 	    UNI(0x53, 0x0433)	/* CYRILLIC SMALL LETTER GHE */ \
    789 	    UNI(0x54, 0x0434)	/* CYRILLIC SMALL LETTER DE */ \
    790 	    UNI(0x55, 0x0435)	/* CYRILLIC SMALL LETTER IE */ \
    791 	    UNI(0x56, 0x0436)	/* CYRILLIC SMALL LETTER ZHE */ \
    792 	    UNI(0x57, 0x0437)	/* CYRILLIC SMALL LETTER ZE */ \
    793 	    UNI(0x58, 0x0438)	/* CYRILLIC SMALL LETTER I */ \
    794 	    UNI(0x59, 0x0439)	/* CYRILLIC SMALL LETTER SHORT I */ \
    795 	    UNI(0x5A, 0x043A)	/* CYRILLIC SMALL LETTER KA */ \
    796 	    UNI(0x5B, 0x043B)	/* CYRILLIC SMALL LETTER EL */ \
    797 	    UNI(0x5C, 0x043C)	/* CYRILLIC SMALL LETTER EM */ \
    798 	    UNI(0x5D, 0x043D)	/* CYRILLIC SMALL LETTER EN */ \
    799 	    UNI(0x5E, 0x043E)	/* CYRILLIC SMALL LETTER O */ \
    800 	    UNI(0x5F, 0x043F)	/* CYRILLIC SMALL LETTER PE */ \
    801 	    UNI(0x60, 0x0440)	/* CYRILLIC SMALL LETTER ER */ \
    802 	    UNI(0x61, 0x0441)	/* CYRILLIC SMALL LETTER ES */ \
    803 	    UNI(0x62, 0x0442)	/* CYRILLIC SMALL LETTER TE */ \
    804 	    UNI(0x63, 0x0443)	/* CYRILLIC SMALL LETTER U */ \
    805 	    UNI(0x64, 0x0444)	/* CYRILLIC SMALL LETTER EF */ \
    806 	    UNI(0x65, 0x0445)	/* CYRILLIC SMALL LETTER HA */ \
    807 	    UNI(0x66, 0x0446)	/* CYRILLIC SMALL LETTER TSE */ \
    808 	    UNI(0x67, 0x0447)	/* CYRILLIC SMALL LETTER CHE */ \
    809 	    UNI(0x68, 0x0448)	/* CYRILLIC SMALL LETTER SHA */ \
    810 	    UNI(0x69, 0x0449)	/* CYRILLIC SMALL LETTER SHCHA */ \
    811 	    UNI(0x6A, 0x044A)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
    812 	    UNI(0x6B, 0x044B)	/* CYRILLIC SMALL LETTER YERU */ \
    813 	    UNI(0x6C, 0x044C)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
    814 	    UNI(0x6D, 0x044D)	/* CYRILLIC SMALL LETTER E */ \
    815 	    UNI(0x6E, 0x044E)	/* CYRILLIC SMALL LETTER YU */ \
    816 	    UNI(0x6F, 0x044F)	/* CYRILLIC SMALL LETTER YA */ \
    817 	    UNI(0x70, 0x2116)	/* NUMERO SIGN */ \
    818 	    UNI(0x71, 0x0451)	/* CYRILLIC SMALL LETTER IO */ \
    819 	    UNI(0x72, 0x0452)	/* CYRILLIC SMALL LETTER DJE */ \
    820 	    UNI(0x73, 0x0453)	/* CYRILLIC SMALL LETTER GJE */ \
    821 	    UNI(0x74, 0x0454)	/* CYRILLIC SMALL LETTER UKRAINIAN IE */ \
    822 	    UNI(0x75, 0x0455)	/* CYRILLIC SMALL LETTER DZE */ \
    823 	    UNI(0x76, 0x0456)	/* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ \
    824 	    UNI(0x77, 0x0457)	/* CYRILLIC SMALL LETTER YI */ \
    825 	    UNI(0x78, 0x0458)	/* CYRILLIC SMALL LETTER JE */ \
    826 	    UNI(0x79, 0x0459)	/* CYRILLIC SMALL LETTER LJE */ \
    827 	    UNI(0x7A, 0x045A)	/* CYRILLIC SMALL LETTER NJE */ \
    828 	    UNI(0x7B, 0x045B)	/* CYRILLIC SMALL LETTER TSHE */ \
    829 	    UNI(0x7C, 0x045C)	/* CYRILLIC SMALL LETTER KJE */ \
    830 	    UNI(0x7D, 0x00A7)	/* SECTION SIGN */ \
    831 	    UNI(0x7E, 0x045E)	/* CYRILLIC SMALL LETTER SHORT U */ \
    832 	    UNI(0x7F, 0x045F)	/* CYRILLIC SMALL LETTER DZHE */ \
    833 	} \
    834 	end_CODEPAGE()
    835 
    836 #define unmap_ISO_Latin_Cyrillic(code,dft) \
    837 	switch (code) { \
    838 	    MAP(0x21, 0x03)	/* CYRILLIC CAPITAL LETTER IO */ \
    839 	    MAP(0x22, 0x04)	/* CYRILLIC CAPITAL LETTER DJE */ \
    840 	    MAP(0x23, 0x05)	/* CYRILLIC CAPITAL LETTER GJE */ \
    841 	    MAP(0x24, 0x06)	/* CYRILLIC CAPITAL LETTER UKRAINIAN IE */ \
    842 	    MAP(0x25, 0x07)	/* CYRILLIC CAPITAL LETTER DZE */ \
    843 	    MAP(0x26, 0x08)	/* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ \
    844 	    MAP(0x27, 0x09)	/* CYRILLIC CAPITAL LETTER YI */ \
    845 	    MAP(0x28, 0x0A)	/* CYRILLIC CAPITAL LETTER JE */ \
    846 	    MAP(0x29, 0x0B)	/* CYRILLIC CAPITAL LETTER LJE */ \
    847 	    MAP(0x2A, 0x0C)	/* CYRILLIC CAPITAL LETTER NJE */ \
    848 	    MAP(0x2B, 0x0D)	/* CYRILLIC CAPITAL LETTER TSHE */ \
    849 	    MAP(0x2C, 0x0E)	/* CYRILLIC CAPITAL LETTER KJE */ \
    850 	    MAP(0x2E, 0x0F)	/* CYRILLIC CAPITAL LETTER SHORT U */ \
    851 	    MAP(0x2F, 0x10)	/* CYRILLIC CAPITAL LETTER DZHE */ \
    852 	    MAP(0x30, 0x11)	/* CYRILLIC CAPITAL LETTER A */ \
    853 	    MAP(0x31, 0x12)	/* CYRILLIC CAPITAL LETTER BE */ \
    854 	    MAP(0x32, 0x13)	/* CYRILLIC CAPITAL LETTER VE */ \
    855 	    MAP(0x33, 0x14)	/* CYRILLIC CAPITAL LETTER GHE */ \
    856 	    MAP(0x34, 0x15)	/* CYRILLIC CAPITAL LETTER DE */ \
    857 	    MAP(0x35, 0x16)	/* CYRILLIC CAPITAL LETTER IE */ \
    858 	    MAP(0x36, 0x17)	/* CYRILLIC CAPITAL LETTER ZHE */ \
    859 	    MAP(0x37, 0x18)	/* CYRILLIC CAPITAL LETTER ZE */ \
    860 	    MAP(0x38, 0x19)	/* CYRILLIC CAPITAL LETTER I */ \
    861 	    MAP(0x39, 0x1A)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
    862 	    MAP(0x3A, 0x1B)	/* CYRILLIC CAPITAL LETTER KA */ \
    863 	    MAP(0x3B, 0x1C)	/* CYRILLIC CAPITAL LETTER EL */ \
    864 	    MAP(0x3C, 0x1D)	/* CYRILLIC CAPITAL LETTER EM */ \
    865 	    MAP(0x3D, 0x1E)	/* CYRILLIC CAPITAL LETTER EN */ \
    866 	    MAP(0x3E, 0x1F)	/* CYRILLIC CAPITAL LETTER O */ \
    867 	    MAP(0x3F, 0x20)	/* CYRILLIC CAPITAL LETTER PE */ \
    868 	    MAP(0x40, 0x21)	/* CYRILLIC CAPITAL LETTER ER */ \
    869 	    MAP(0x41, 0x22)	/* CYRILLIC CAPITAL LETTER ES */ \
    870 	    MAP(0x42, 0x23)	/* CYRILLIC CAPITAL LETTER TE */ \
    871 	    MAP(0x43, 0x24)	/* CYRILLIC CAPITAL LETTER U */ \
    872 	    MAP(0x44, 0x25)	/* CYRILLIC CAPITAL LETTER EF */ \
    873 	    MAP(0x45, 0x26)	/* CYRILLIC CAPITAL LETTER HA */ \
    874 	    MAP(0x46, 0x27)	/* CYRILLIC CAPITAL LETTER TSE */ \
    875 	    MAP(0x47, 0x28)	/* CYRILLIC CAPITAL LETTER CHE */ \
    876 	    MAP(0x48, 0x29)	/* CYRILLIC CAPITAL LETTER SHA */ \
    877 	    MAP(0x49, 0x2A)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
    878 	    MAP(0x4A, 0x2B)	/* CYRILLIC CAPITAL LETTER HARD SIGN */ \
    879 	    MAP(0x4B, 0x2C)	/* CYRILLIC CAPITAL LETTER YERU */ \
    880 	    MAP(0x4C, 0x2D)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
    881 	    MAP(0x4D, 0x2E)	/* CYRILLIC CAPITAL LETTER E */ \
    882 	    MAP(0x4E, 0x2F)	/* CYRILLIC CAPITAL LETTER YU */ \
    883 	    MAP(0x4F, 0x30)	/* CYRILLIC CAPITAL LETTER YA */ \
    884 	    MAP(0x50, 0x31)	/* CYRILLIC SMALL LETTER A */ \
    885 	    MAP(0x51, 0x32)	/* CYRILLIC SMALL LETTER BE */ \
    886 	    MAP(0x52, 0x33)	/* CYRILLIC SMALL LETTER VE */ \
    887 	    MAP(0x53, 0x34)	/* CYRILLIC SMALL LETTER GHE */ \
    888 	    MAP(0x54, 0x35)	/* CYRILLIC SMALL LETTER DE */ \
    889 	    MAP(0x55, 0x36)	/* CYRILLIC SMALL LETTER IE */ \
    890 	    MAP(0x56, 0x37)	/* CYRILLIC SMALL LETTER ZHE */ \
    891 	    MAP(0x57, 0x38)	/* CYRILLIC SMALL LETTER ZE */ \
    892 	    MAP(0x58, 0x39)	/* CYRILLIC SMALL LETTER I */ \
    893 	    MAP(0x59, 0x3A)	/* CYRILLIC SMALL LETTER SHORT I */ \
    894 	    MAP(0x5A, 0x3B)	/* CYRILLIC SMALL LETTER KA */ \
    895 	    MAP(0x5B, 0x3C)	/* CYRILLIC SMALL LETTER EL */ \
    896 	    MAP(0x5C, 0x3D)	/* CYRILLIC SMALL LETTER EM */ \
    897 	    MAP(0x5D, 0x3E)	/* CYRILLIC SMALL LETTER EN */ \
    898 	    MAP(0x5E, 0x3F)	/* CYRILLIC SMALL LETTER O */ \
    899 	    MAP(0x5F, 0x40)	/* CYRILLIC SMALL LETTER PE */ \
    900 	    MAP(0x60, 0x41)	/* CYRILLIC SMALL LETTER ER */ \
    901 	    MAP(0x61, 0x42)	/* CYRILLIC SMALL LETTER ES */ \
    902 	    MAP(0x62, 0x43)	/* CYRILLIC SMALL LETTER TE */ \
    903 	    MAP(0x63, 0x44)	/* CYRILLIC SMALL LETTER U */ \
    904 	    MAP(0x64, 0x45)	/* CYRILLIC SMALL LETTER EF */ \
    905 	    MAP(0x65, 0x46)	/* CYRILLIC SMALL LETTER HA */ \
    906 	    MAP(0x66, 0x47)	/* CYRILLIC SMALL LETTER TSE */ \
    907 	    MAP(0x67, 0x48)	/* CYRILLIC SMALL LETTER CHE */ \
    908 	    MAP(0x68, 0x49)	/* CYRILLIC SMALL LETTER SHA */ \
    909 	    MAP(0x69, 0x4A)	/* CYRILLIC SMALL LETTER SHCHA */ \
    910 	    MAP(0x6A, 0x4B)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
    911 	    MAP(0x6B, 0x4C)	/* CYRILLIC SMALL LETTER YERU */ \
    912 	    MAP(0x6C, 0x4D)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
    913 	    MAP(0x6D, 0x4E)	/* CYRILLIC SMALL LETTER E */ \
    914 	    MAP(0x6E, 0x4F)	/* CYRILLIC SMALL LETTER YU */ \
    915 	    MAP(0x6F, 0x50)	/* CYRILLIC SMALL LETTER YA */ \
    916 	    MAP(0x70, 0x51)	/* NUMERO SIGN */ \
    917 	    MAP(0x71, 0x52)	/* CYRILLIC SMALL LETTER IO */ \
    918 	    MAP(0x72, 0x53)	/* CYRILLIC SMALL LETTER DJE */ \
    919 	    MAP(0x73, 0x54)	/* CYRILLIC SMALL LETTER GJE */ \
    920 	    MAP(0x74, 0x55)	/* CYRILLIC SMALL LETTER UKRAINIAN IE */ \
    921 	    MAP(0x75, 0x56)	/* CYRILLIC SMALL LETTER DZE */ \
    922 	    MAP(0x76, 0x57)	/* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ \
    923 	    MAP(0x77, 0x58)	/* CYRILLIC SMALL LETTER YI */ \
    924 	    MAP(0x78, 0x59)	/* CYRILLIC SMALL LETTER JE */ \
    925 	    MAP(0x79, 0x5A)	/* CYRILLIC SMALL LETTER LJE */ \
    926 	    MAP(0x7A, 0x5B)	/* CYRILLIC SMALL LETTER NJE */ \
    927 	    MAP(0x7B, 0x5C)	/* CYRILLIC SMALL LETTER TSHE */ \
    928 	    MAP(0x7C, 0x5D)	/* CYRILLIC SMALL LETTER KJE */ \
    929 	    MAP(0x7D, 0xA7)	/* SECTION SIGN */ \
    930 	    MAP(0x7E, 0x5E)	/* CYRILLIC SMALL LETTER SHORT U */ \
    931 	    MAP(0x7F, 0x5F)	/* CYRILLIC SMALL LETTER DZHE */ \
    932 	    default: dft; break; \
    933 	}
    934 
    935 /*
    936  * ISO Greek is 8859-7
    937  */
    938 #define map_ISO_Greek_Supp(code) \
    939 	begin_CODEPAGE(96) \
    940 	switch (code) { \
    941 	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
    942 	    UNI(0x21, 0x2018)	/* LEFT SINGLE QUOTATION MARK */ \
    943 	    UNI(0x22, 0x2019)	/* RIGHT SINGLE QUOTATION MARK */ \
    944 	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
    945 	    XXX(0x24, UNDEF)	/* undefined */ \
    946 	    XXX(0x25, UNDEF)	/* undefined */ \
    947 	    UNI(0x26, 0x00A6)	/* BROKEN BAR */ \
    948 	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
    949 	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
    950 	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
    951 	    XXX(0x2A, UNDEF)	/* undefined */ \
    952 	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
    953 	    UNI(0x2C, 0x00AC)	/* NOT SIGN */ \
    954 	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
    955 	    XXX(0x2E, UNDEF)	/* undefined */ \
    956 	    UNI(0x2F, 0x2015)	/* HORIZONTAL BAR */ \
    957 	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
    958 	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
    959 	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
    960 	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
    961 	    UNI(0x34, 0x0384)	/* GREEK TONOS */ \
    962 	    UNI(0x35, 0x0385)	/* GREEK DIALYTIKA TONOS */ \
    963 	    UNI(0x36, 0x0386)	/* GREEK CAPITAL LETTER ALPHA WITH TONOS */ \
    964 	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
    965 	    UNI(0x38, 0x0388)	/* GREEK CAPITAL LETTER EPSILON WITH TONOS */ \
    966 	    UNI(0x39, 0x0389)	/* GREEK CAPITAL LETTER ETA WITH TONOS */ \
    967 	    UNI(0x3A, 0x038A)	/* GREEK CAPITAL LETTER IOTA WITH TONOS */ \
    968 	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
    969 	    UNI(0x3C, 0x038C)	/* GREEK CAPITAL LETTER OMICRON WITH TONOS */ \
    970 	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
    971 	    UNI(0x3E, 0x038E)	/* GREEK CAPITAL LETTER UPSILON WITH TONOS */ \
    972 	    UNI(0x3F, 0x038F)	/* GREEK CAPITAL LETTER OMEGA WITH TONOS */ \
    973 	    UNI(0x40, 0x0390)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ \
    974 	    UNI(0x41, 0x0391)	/* GREEK CAPITAL LETTER ALPHA */ \
    975 	    UNI(0x42, 0x0392)	/* GREEK CAPITAL LETTER BETA */ \
    976 	    UNI(0x43, 0x0393)	/* GREEK CAPITAL LETTER GAMMA */ \
    977 	    UNI(0x44, 0x0394)	/* GREEK CAPITAL LETTER DELTA */ \
    978 	    UNI(0x45, 0x0395)	/* GREEK CAPITAL LETTER EPSILON */ \
    979 	    UNI(0x46, 0x0396)	/* GREEK CAPITAL LETTER ZETA */ \
    980 	    UNI(0x47, 0x0397)	/* GREEK CAPITAL LETTER ETA */ \
    981 	    UNI(0x48, 0x0398)	/* GREEK CAPITAL LETTER THETA */ \
    982 	    UNI(0x49, 0x0399)	/* GREEK CAPITAL LETTER IOTA */ \
    983 	    UNI(0x4A, 0x039A)	/* GREEK CAPITAL LETTER KAPPA */ \
    984 	    UNI(0x4B, 0x039B)	/* GREEK CAPITAL LETTER LAMDA */ \
    985 	    UNI(0x4C, 0x039C)	/* GREEK CAPITAL LETTER MU */ \
    986 	    UNI(0x4D, 0x039D)	/* GREEK CAPITAL LETTER NU */ \
    987 	    UNI(0x4E, 0x039E)	/* GREEK CAPITAL LETTER XI */ \
    988 	    UNI(0x4F, 0x039F)	/* GREEK CAPITAL LETTER OMICRON */ \
    989 	    UNI(0x50, 0x03A0)	/* GREEK CAPITAL LETTER PI */ \
    990 	    UNI(0x51, 0x03A1)	/* GREEK CAPITAL LETTER RHO */ \
    991 	    XXX(0x52, UNDEF)	/* undefined */ \
    992 	    UNI(0x53, 0x03A3)	/* GREEK CAPITAL LETTER SIGMA */ \
    993 	    UNI(0x54, 0x03A4)	/* GREEK CAPITAL LETTER TAU */ \
    994 	    UNI(0x55, 0x03A5)	/* GREEK CAPITAL LETTER UPSILON */ \
    995 	    UNI(0x56, 0x03A6)	/* GREEK CAPITAL LETTER PHI */ \
    996 	    UNI(0x57, 0x03A7)	/* GREEK CAPITAL LETTER CHI */ \
    997 	    UNI(0x58, 0x03A8)	/* GREEK CAPITAL LETTER PSI */ \
    998 	    UNI(0x59, 0x03A9)	/* GREEK CAPITAL LETTER OMEGA */ \
    999 	    UNI(0x5A, 0x03AA)	/* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ \
   1000 	    UNI(0x5B, 0x03AB)	/* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ \
   1001 	    UNI(0x5C, 0x03AC)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
   1002 	    UNI(0x5D, 0x03AD)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
   1003 	    UNI(0x5E, 0x03AE)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
   1004 	    UNI(0x5F, 0x03AF)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
   1005 	    UNI(0x60, 0x03B0)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ \
   1006 	    UNI(0x61, 0x03B1)	/* GREEK SMALL LETTER ALPHA */ \
   1007 	    UNI(0x62, 0x03B2)	/* GREEK SMALL LETTER BETA */ \
   1008 	    UNI(0x63, 0x03B3)	/* GREEK SMALL LETTER GAMMA */ \
   1009 	    UNI(0x64, 0x03B4)	/* GREEK SMALL LETTER DELTA */ \
   1010 	    UNI(0x65, 0x03B5)	/* GREEK SMALL LETTER EPSILON */ \
   1011 	    UNI(0x66, 0x03B6)	/* GREEK SMALL LETTER ZETA */ \
   1012 	    UNI(0x67, 0x03B7)	/* GREEK SMALL LETTER ETA */ \
   1013 	    UNI(0x68, 0x03B8)	/* GREEK SMALL LETTER THETA */ \
   1014 	    UNI(0x69, 0x03B9)	/* GREEK SMALL LETTER IOTA */ \
   1015 	    UNI(0x6A, 0x03BA)	/* GREEK SMALL LETTER KAPPA */ \
   1016 	    UNI(0x6B, 0x03BB)	/* GREEK SMALL LETTER LAMDA */ \
   1017 	    UNI(0x6C, 0x03BC)	/* GREEK SMALL LETTER MU */ \
   1018 	    UNI(0x6D, 0x03BD)	/* GREEK SMALL LETTER NU */ \
   1019 	    UNI(0x6E, 0x03BE)	/* GREEK SMALL LETTER XI */ \
   1020 	    UNI(0x6F, 0x03BF)	/* GREEK SMALL LETTER OMICRON */ \
   1021 	    UNI(0x70, 0x03C0)	/* GREEK SMALL LETTER PI */ \
   1022 	    UNI(0x71, 0x03C1)	/* GREEK SMALL LETTER RHO */ \
   1023 	    UNI(0x72, 0x03C2)	/* GREEK SMALL LETTER FINAL SIGMA */ \
   1024 	    UNI(0x73, 0x03C3)	/* GREEK SMALL LETTER SIGMA */ \
   1025 	    UNI(0x74, 0x03C4)	/* GREEK SMALL LETTER TAU */ \
   1026 	    UNI(0x75, 0x03C5)	/* GREEK SMALL LETTER UPSILON */ \
   1027 	    UNI(0x76, 0x03C6)	/* GREEK SMALL LETTER PHI */ \
   1028 	    UNI(0x77, 0x03C7)	/* GREEK SMALL LETTER CHI */ \
   1029 	    UNI(0x78, 0x03C8)	/* GREEK SMALL LETTER PSI */ \
   1030 	    UNI(0x79, 0x03C9)	/* GREEK SMALL LETTER OMEGA */ \
   1031 	    UNI(0x7A, 0x03CA)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
   1032 	    UNI(0x7B, 0x03CB)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
   1033 	    UNI(0x7C, 0x03CC)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
   1034 	    UNI(0x7D, 0x03CD)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
   1035 	    UNI(0x7E, 0x03CE)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
   1036 	    XXX(0x7F, UNDEF)	/* undefined */ \
   1037 	} \
   1038 	end_CODEPAGE()
   1039 
   1040 #define unmap_ISO_Greek_Supp(code,dft) \
   1041 	switch (code) { \
   1042 	    MAP(0x21, 0x60)	/* LEFT SINGLE QUOTATION MARK */ \
   1043 	    MAP(0x22, 0x27)	/* RIGHT SINGLE QUOTATION MARK */ \
   1044 	    MAP(0x24, 0x1B)	/* undefined */ \
   1045 	    MAP(0x25, 0x1B)	/* undefined */ \
   1046 	    MAP(0x2A, 0x1B)	/* undefined */ \
   1047 	    MAP(0x2E, 0x1B)	/* undefined */ \
   1048 	    MAP(0x2F, 0x2D)	/* HORIZONTAL BAR */ \
   1049 	    MAP(0x34, 0x96)	/* GREEK TONOS */ \
   1050 	    MAP(0x35, 0x95)	/* GREEK DIALYTIKA TONOS */ \
   1051 	    MAP(0x36, 0x6E)	/* GREEK CAPITAL LETTER ALPHA WITH TONOS */ \
   1052 	    MAP(0x38, 0x6F)	/* GREEK CAPITAL LETTER EPSILON WITH TONOS */ \
   1053 	    MAP(0x39, 0x70)	/* GREEK CAPITAL LETTER ETA WITH TONOS */ \
   1054 	    MAP(0x3A, 0x71)	/* GREEK CAPITAL LETTER IOTA WITH TONOS */ \
   1055 	    MAP(0x3C, 0x72)	/* GREEK CAPITAL LETTER OMICRON WITH TONOS */ \
   1056 	    MAP(0x3E, 0x73)	/* GREEK CAPITAL LETTER UPSILON WITH TONOS */ \
   1057 	    MAP(0x3F, 0x74)	/* GREEK CAPITAL LETTER OMEGA WITH TONOS */ \
   1058 	    MAP(0x40, 0x75)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ \
   1059 	    MAP(0x41, 0x76)	/* GREEK CAPITAL LETTER ALPHA */ \
   1060 	    MAP(0x42, 0x77)	/* GREEK CAPITAL LETTER BETA */ \
   1061 	    MAP(0x43, 0x78)	/* GREEK CAPITAL LETTER GAMMA */ \
   1062 	    MAP(0x44, 0x79)	/* GREEK CAPITAL LETTER DELTA */ \
   1063 	    MAP(0x45, 0x7A)	/* GREEK CAPITAL LETTER EPSILON */ \
   1064 	    MAP(0x46, 0x7B)	/* GREEK CAPITAL LETTER ZETA */ \
   1065 	    MAP(0x47, 0x7C)	/* GREEK CAPITAL LETTER ETA */ \
   1066 	    MAP(0x48, 0x7D)	/* GREEK CAPITAL LETTER THETA */ \
   1067 	    MAP(0x49, 0x7E)	/* GREEK CAPITAL LETTER IOTA */ \
   1068 	    MAP(0x4A, 0x7F)	/* GREEK CAPITAL LETTER KAPPA */ \
   1069 	    MAP(0x4B, 0xA2)	/* GREEK CAPITAL LETTER LAMDA */ \
   1070 	    MAP(0x4C, 0xA3)	/* GREEK CAPITAL LETTER MU */ \
   1071 	    MAP(0x4D, 0xA4)	/* GREEK CAPITAL LETTER NU */ \
   1072 	    MAP(0x4E, 0xA5)	/* GREEK CAPITAL LETTER XI */ \
   1073 	    MAP(0x4F, 0xA6)	/* GREEK CAPITAL LETTER OMICRON */ \
   1074 	    MAP(0x50, 0xA7)	/* GREEK CAPITAL LETTER PI */ \
   1075 	    MAP(0x51, 0xA8)	/* GREEK CAPITAL LETTER RHO */ \
   1076 	    MAP(0x52, 0x1B)	/* undefined */ \
   1077 	    MAP(0x53, 0xA9)	/* GREEK CAPITAL LETTER SIGMA */ \
   1078 	    MAP(0x54, 0xAA)	/* GREEK CAPITAL LETTER TAU */ \
   1079 	    MAP(0x55, 0xAB)	/* GREEK CAPITAL LETTER UPSILON */ \
   1080 	    MAP(0x56, 0xAC)	/* GREEK CAPITAL LETTER PHI */ \
   1081 	    MAP(0x57, 0xAD)	/* GREEK CAPITAL LETTER CHI */ \
   1082 	    MAP(0x58, 0xAE)	/* GREEK CAPITAL LETTER PSI */ \
   1083 	    MAP(0x59, 0xAF)	/* GREEK CAPITAL LETTER OMEGA */ \
   1084 	    MAP(0x5A, 0xB0)	/* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ \
   1085 	    MAP(0x5B, 0xB1)	/* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ \
   1086 	    MAP(0x5C, 0xB2)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
   1087 	    MAP(0x5D, 0xB3)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
   1088 	    MAP(0x5E, 0xB4)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
   1089 	    MAP(0x5F, 0xB5)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
   1090 	    MAP(0x60, 0xB6)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ \
   1091 	    MAP(0x61, 0xB7)	/* GREEK SMALL LETTER ALPHA */ \
   1092 	    MAP(0x62, 0xB8)	/* GREEK SMALL LETTER BETA */ \
   1093 	    MAP(0x63, 0xB9)	/* GREEK SMALL LETTER GAMMA */ \
   1094 	    MAP(0x64, 0xBA)	/* GREEK SMALL LETTER DELTA */ \
   1095 	    MAP(0x65, 0xBB)	/* GREEK SMALL LETTER EPSILON */ \
   1096 	    MAP(0x66, 0xBC)	/* GREEK SMALL LETTER ZETA */ \
   1097 	    MAP(0x67, 0xBD)	/* GREEK SMALL LETTER ETA */ \
   1098 	    MAP(0x68, 0xBE)	/* GREEK SMALL LETTER THETA */ \
   1099 	    MAP(0x69, 0xBF)	/* GREEK SMALL LETTER IOTA */ \
   1100 	    MAP(0x6A, 0xC0)	/* GREEK SMALL LETTER KAPPA */ \
   1101 	    MAP(0x6B, 0xC1)	/* GREEK SMALL LETTER LAMDA */ \
   1102 	    MAP(0x6C, 0xC2)	/* GREEK SMALL LETTER MU */ \
   1103 	    MAP(0x6D, 0xC3)	/* GREEK SMALL LETTER NU */ \
   1104 	    MAP(0x6E, 0xC4)	/* GREEK SMALL LETTER XI */ \
   1105 	    MAP(0x6F, 0xC5)	/* GREEK SMALL LETTER OMICRON */ \
   1106 	    MAP(0x70, 0xC6)	/* GREEK SMALL LETTER PI */ \
   1107 	    MAP(0x71, 0xC7)	/* GREEK SMALL LETTER RHO */ \
   1108 	    MAP(0x72, 0xC8)	/* GREEK SMALL LETTER FINAL SIGMA */ \
   1109 	    MAP(0x73, 0xC9)	/* GREEK SMALL LETTER SIGMA */ \
   1110 	    MAP(0x74, 0xCA)	/* GREEK SMALL LETTER TAU */ \
   1111 	    MAP(0x75, 0xCB)	/* GREEK SMALL LETTER UPSILON */ \
   1112 	    MAP(0x76, 0xCC)	/* GREEK SMALL LETTER PHI */ \
   1113 	    MAP(0x77, 0xCD)	/* GREEK SMALL LETTER CHI */ \
   1114 	    MAP(0x78, 0xCE)	/* GREEK SMALL LETTER PSI */ \
   1115 	    MAP(0x79, 0xCF)	/* GREEK SMALL LETTER OMEGA */ \
   1116 	    MAP(0x7A, 0xD0)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
   1117 	    MAP(0x7B, 0xD1)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
   1118 	    MAP(0x7C, 0xD2)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
   1119 	    MAP(0x7D, 0xD3)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
   1120 	    MAP(0x7E, 0xD4)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
   1121 	    MAP(0x7F, 0x1B)	/* undefined */ \
   1122 	    default: dft; break; \
   1123 	}
   1124 
   1125 /*
   1126  * figure A-23 "ISO Latin-Hebrew Supplemental Character Set"
   1127  */
   1128 #define map_ISO_Hebrew(code) \
   1129 	begin_CODEPAGE(96) \
   1130 	switch (code) { \
   1131 	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
   1132 	    XXX(0x21, UNDEF)	/* undefined */ \
   1133 	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
   1134 	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
   1135 	    UNI(0x24, 0x00A4)	/* CURRENCY SIGN */ \
   1136 	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
   1137 	    UNI(0x26, 0x00A6)	/* BROKEN BAR */ \
   1138 	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
   1139 	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
   1140 	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
   1141 	    UNI(0x2A, 0x00D7)	/* MULTIPLICATION SIGN */ \
   1142 	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   1143 	    UNI(0x2C, 0x00AC)	/* NOT SIGN */ \
   1144 	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
   1145 	    UNI(0x2E, 0x00AE)	/* REGISTERED SIGN */ \
   1146 	    UNI(0x2F, 0x00AF)	/* MACRON */ \
   1147 	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
   1148 	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
   1149 	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
   1150 	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
   1151 	    UNI(0x34, 0x00B4)	/* ACUTE ACCENT */ \
   1152 	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
   1153 	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
   1154 	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
   1155 	    UNI(0x38, 0x00B8)	/* CEDILLA */ \
   1156 	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
   1157 	    UNI(0x3A, 0x00F7)	/* DIVISION SIGN */ \
   1158 	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   1159 	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
   1160 	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
   1161 	    UNI(0x3E, 0x00BE)	/* VULGAR FRACTION THREE QUARTERS */ \
   1162 	    XXX(0x3F, UNDEF)	/* undefined */ \
   1163 	    XXX(0x40, UNDEF)	/* undefined */ \
   1164 	    XXX(0x41, UNDEF)	/* undefined */ \
   1165 	    XXX(0x42, UNDEF)	/* undefined */ \
   1166 	    XXX(0x43, UNDEF)	/* undefined */ \
   1167 	    XXX(0x44, UNDEF)	/* undefined */ \
   1168 	    XXX(0x45, UNDEF)	/* undefined */ \
   1169 	    XXX(0x46, UNDEF)	/* undefined */ \
   1170 	    XXX(0x47, UNDEF)	/* undefined */ \
   1171 	    XXX(0x48, UNDEF)	/* undefined */ \
   1172 	    XXX(0x49, UNDEF)	/* undefined */ \
   1173 	    XXX(0x4A, UNDEF)	/* undefined */ \
   1174 	    XXX(0x4B, UNDEF)	/* undefined */ \
   1175 	    XXX(0x4C, UNDEF)	/* undefined */ \
   1176 	    XXX(0x4D, UNDEF)	/* undefined */ \
   1177 	    XXX(0x4E, UNDEF)	/* undefined */ \
   1178 	    XXX(0x4F, UNDEF)	/* undefined */ \
   1179 	    XXX(0x50, UNDEF)	/* undefined */ \
   1180 	    XXX(0x51, UNDEF)	/* undefined */ \
   1181 	    XXX(0x52, UNDEF)	/* undefined */ \
   1182 	    XXX(0x53, UNDEF)	/* undefined */ \
   1183 	    XXX(0x54, UNDEF)	/* undefined */ \
   1184 	    XXX(0x55, UNDEF)	/* undefined */ \
   1185 	    XXX(0x56, UNDEF)	/* undefined */ \
   1186 	    XXX(0x57, UNDEF)	/* undefined */ \
   1187 	    XXX(0x58, UNDEF)	/* undefined */ \
   1188 	    XXX(0x59, UNDEF)	/* undefined */ \
   1189 	    XXX(0x5A, UNDEF)	/* undefined */ \
   1190 	    XXX(0x5B, UNDEF)	/* undefined */ \
   1191 	    XXX(0x5C, UNDEF)	/* undefined */ \
   1192 	    XXX(0x5D, UNDEF)	/* undefined */ \
   1193 	    XXX(0x5E, UNDEF)	/* undefined */ \
   1194 	    UNI(0x5F, 0x2017)	/* DOUBLE LOW LINE */ \
   1195 	    UNI(0x60, 0x05D0)	/* HEBREW LETTER ALEF */ \
   1196 	    UNI(0x61, 0x05D1)	/* HEBREW LETTER BET */ \
   1197 	    UNI(0x62, 0x05D2)	/* HEBREW LETTER GIMEL */ \
   1198 	    UNI(0x63, 0x05D3)	/* HEBREW LETTER DALET */ \
   1199 	    UNI(0x64, 0x05D4)	/* HEBREW LETTER HE */ \
   1200 	    UNI(0x65, 0x05D5)	/* HEBREW LETTER VAV */ \
   1201 	    UNI(0x66, 0x05D6)	/* HEBREW LETTER ZAYIN */ \
   1202 	    UNI(0x67, 0x05D7)	/* HEBREW LETTER HET */ \
   1203 	    UNI(0x68, 0x05D8)	/* HEBREW LETTER TET */ \
   1204 	    UNI(0x69, 0x05D9)	/* HEBREW LETTER YOD */ \
   1205 	    UNI(0x6A, 0x05DA)	/* HEBREW LETTER FINAL KAF */ \
   1206 	    UNI(0x6B, 0x05DB)	/* HEBREW LETTER KAF */ \
   1207 	    UNI(0x6C, 0x05DC)	/* HEBREW LETTER LAMED */ \
   1208 	    UNI(0x6D, 0x05DD)	/* HEBREW LETTER FINAL MEM */ \
   1209 	    UNI(0x6E, 0x05DE)	/* HEBREW LETTER MEM */ \
   1210 	    UNI(0x6F, 0x05DF)	/* HEBREW LETTER FINAL NUN */ \
   1211 	    UNI(0x70, 0x05E0)	/* HEBREW LETTER NUN */ \
   1212 	    UNI(0x71, 0x05E1)	/* HEBREW LETTER SAMEKH */ \
   1213 	    UNI(0x72, 0x05E2)	/* HEBREW LETTER AYIN */ \
   1214 	    UNI(0x73, 0x05E3)	/* HEBREW LETTER FINAL PE */ \
   1215 	    UNI(0x74, 0x05E4)	/* HEBREW LETTER PE */ \
   1216 	    UNI(0x75, 0x05E5)	/* HEBREW LETTER FINAL TSADI */ \
   1217 	    UNI(0x76, 0x05E6)	/* HEBREW LETTER TSADI */ \
   1218 	    UNI(0x77, 0x05E7)	/* HEBREW LETTER QOF */ \
   1219 	    UNI(0x78, 0x05E8)	/* HEBREW LETTER RESH */ \
   1220 	    UNI(0x79, 0x05E9)	/* HEBREW LETTER SHIN */ \
   1221 	    UNI(0x7A, 0x05EA)	/* HEBREW LETTER TAV */ \
   1222 	    XXX(0x7B, UNDEF)	/* undefined */ \
   1223 	    XXX(0x7C, UNDEF)	/* undefined */ \
   1224 	    XXX(0x7D, UNDEF)	/* undefined */ \
   1225 	    XXX(0x7E, UNDEF)	/* undefined */ \
   1226 	    XXX(0x7F, UNDEF)	/* undefined */ \
   1227 	} \
   1228 	end_CODEPAGE()
   1229 
   1230 #define unmap_ISO_Hebrew(code,dft) \
   1231 	switch (code) { \
   1232 	    MAP(0x21, 0x1B)	/* undefined */ \
   1233 	    MAP(0x2A, 0xD7)	/* MULTIPLICATION SIGN */ \
   1234 	    MAP(0x3A, 0xF7)	/* DIVISION SIGN */ \
   1235 	    MAP(0x3F, 0x1B)	/* undefined */ \
   1236 	    MAP(0x40, 0x1B)	/* undefined */ \
   1237 	    MAP(0x41, 0x1B)	/* undefined */ \
   1238 	    MAP(0x42, 0x1B)	/* undefined */ \
   1239 	    MAP(0x43, 0x1B)	/* undefined */ \
   1240 	    MAP(0x44, 0x1B)	/* undefined */ \
   1241 	    MAP(0x45, 0x1B)	/* undefined */ \
   1242 	    MAP(0x46, 0x1B)	/* undefined */ \
   1243 	    MAP(0x47, 0x1B)	/* undefined */ \
   1244 	    MAP(0x48, 0x1B)	/* undefined */ \
   1245 	    MAP(0x49, 0x1B)	/* undefined */ \
   1246 	    MAP(0x4A, 0x1B)	/* undefined */ \
   1247 	    MAP(0x4B, 0x1B)	/* undefined */ \
   1248 	    MAP(0x4C, 0x1B)	/* undefined */ \
   1249 	    MAP(0x4D, 0x1B)	/* undefined */ \
   1250 	    MAP(0x4E, 0x1B)	/* undefined */ \
   1251 	    MAP(0x4F, 0x1B)	/* undefined */ \
   1252 	    MAP(0x50, 0x1B)	/* undefined */ \
   1253 	    MAP(0x51, 0x1B)	/* undefined */ \
   1254 	    MAP(0x52, 0x1B)	/* undefined */ \
   1255 	    MAP(0x53, 0x1B)	/* undefined */ \
   1256 	    MAP(0x54, 0x1B)	/* undefined */ \
   1257 	    MAP(0x55, 0x1B)	/* undefined */ \
   1258 	    MAP(0x56, 0x1B)	/* undefined */ \
   1259 	    MAP(0x57, 0x1B)	/* undefined */ \
   1260 	    MAP(0x58, 0x1B)	/* undefined */ \
   1261 	    MAP(0x59, 0x1B)	/* undefined */ \
   1262 	    MAP(0x5A, 0x1B)	/* undefined */ \
   1263 	    MAP(0x5B, 0x1B)	/* undefined */ \
   1264 	    MAP(0x5C, 0x1B)	/* undefined */ \
   1265 	    MAP(0x5D, 0x1B)	/* undefined */ \
   1266 	    MAP(0x5E, 0x1B)	/* undefined */ \
   1267 	    MAP(0x5F, 0x52)	/* DOUBLE LOW LINE */ \
   1268 	    MAP(0x60, 0x53)	/* HEBREW LETTER ALEF */ \
   1269 	    MAP(0x61, 0x54)	/* HEBREW LETTER BET */ \
   1270 	    MAP(0x62, 0x55)	/* HEBREW LETTER GIMEL */ \
   1271 	    MAP(0x63, 0x56)	/* HEBREW LETTER DALET */ \
   1272 	    MAP(0x64, 0x57)	/* HEBREW LETTER HE */ \
   1273 	    MAP(0x65, 0x58)	/* HEBREW LETTER VAV */ \
   1274 	    MAP(0x66, 0x59)	/* HEBREW LETTER ZAYIN */ \
   1275 	    MAP(0x67, 0x5A)	/* HEBREW LETTER HET */ \
   1276 	    MAP(0x68, 0x5B)	/* HEBREW LETTER TET */ \
   1277 	    MAP(0x69, 0x5C)	/* HEBREW LETTER YOD */ \
   1278 	    MAP(0x6A, 0x5D)	/* HEBREW LETTER FINAL KAF */ \
   1279 	    MAP(0x6B, 0x5E)	/* HEBREW LETTER KAF */ \
   1280 	    MAP(0x6C, 0x5F)	/* HEBREW LETTER LAMED */ \
   1281 	    MAP(0x6D, 0x60)	/* HEBREW LETTER FINAL MEM */ \
   1282 	    MAP(0x6E, 0x61)	/* HEBREW LETTER MEM */ \
   1283 	    MAP(0x6F, 0x62)	/* HEBREW LETTER FINAL NUN */ \
   1284 	    MAP(0x70, 0x63)	/* HEBREW LETTER NUN */ \
   1285 	    MAP(0x71, 0x64)	/* HEBREW LETTER SAMEKH */ \
   1286 	    MAP(0x72, 0x65)	/* HEBREW LETTER AYIN */ \
   1287 	    MAP(0x73, 0x66)	/* HEBREW LETTER FINAL PE */ \
   1288 	    MAP(0x74, 0x67)	/* HEBREW LETTER PE */ \
   1289 	    MAP(0x75, 0x68)	/* HEBREW LETTER FINAL TSADI */ \
   1290 	    MAP(0x76, 0x69)	/* HEBREW LETTER TSADI */ \
   1291 	    MAP(0x77, 0x6A)	/* HEBREW LETTER QOF */ \
   1292 	    MAP(0x78, 0x6B)	/* HEBREW LETTER RESH */ \
   1293 	    MAP(0x79, 0x6C)	/* HEBREW LETTER SHIN */ \
   1294 	    MAP(0x7A, 0x6D)	/* HEBREW LETTER TAV */ \
   1295 	    MAP(0x7B, 0x1B)	/* undefined */ \
   1296 	    MAP(0x7C, 0x1B)	/* undefined */ \
   1297 	    MAP(0x7D, 0x1B)	/* undefined */ \
   1298 	    MAP(0x7E, 0x1B)	/* undefined */ \
   1299 	    MAP(0x7F, 0x1B)	/* undefined */ \
   1300 	    default: dft; break; \
   1301 	}
   1302 
   1303 /*
   1304  * ISO Latin-2 is 8859-2
   1305  */
   1306 #define map_ISO_Latin_2(code) \
   1307 	begin_CODEPAGE(96) \
   1308 	switch (code) { \
   1309 	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
   1310 	    UNI(0x21, 0x0104)	/* LATIN CAPITAL LETTER A WITH OGONEK */ \
   1311 	    UNI(0x22, 0x02D8)	/* BREVE */ \
   1312 	    UNI(0x23, 0x0141)	/* LATIN CAPITAL LETTER L WITH STROKE */ \
   1313 	    UNI(0x24, 0x00A4)	/* CURRENCY SIGN */ \
   1314 	    UNI(0x25, 0x013D)	/* LATIN CAPITAL LETTER L WITH CARON */ \
   1315 	    UNI(0x26, 0x015A)	/* LATIN CAPITAL LETTER S WITH ACUTE */ \
   1316 	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
   1317 	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
   1318 	    UNI(0x29, 0x0160)	/* LATIN CAPITAL LETTER S WITH CARON */ \
   1319 	    UNI(0x2A, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
   1320 	    UNI(0x2B, 0x0164)	/* LATIN CAPITAL LETTER T WITH CARON */ \
   1321 	    UNI(0x2C, 0x0179)	/* LATIN CAPITAL LETTER Z WITH ACUTE */ \
   1322 	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
   1323 	    UNI(0x2E, 0x017D)	/* LATIN CAPITAL LETTER Z WITH CARON */ \
   1324 	    UNI(0x2F, 0x017B)	/* LATIN CAPITAL LETTER Z WITH DOT ABOVE */ \
   1325 	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
   1326 	    UNI(0x31, 0x0105)	/* LATIN SMALL LETTER A WITH OGONEK */ \
   1327 	    UNI(0x32, 0x02DB)	/* OGONEK */ \
   1328 	    UNI(0x33, 0x0142)	/* LATIN SMALL LETTER L WITH STROKE */ \
   1329 	    UNI(0x34, 0x00B4)	/* ACUTE ACCENT */ \
   1330 	    UNI(0x35, 0x013E)	/* LATIN SMALL LETTER L WITH CARON */ \
   1331 	    UNI(0x36, 0x015B)	/* LATIN SMALL LETTER S WITH ACUTE */ \
   1332 	    UNI(0x37, 0x02C7)	/* CARON */ \
   1333 	    UNI(0x38, 0x00B8)	/* CEDILLA */ \
   1334 	    UNI(0x39, 0x0161)	/* LATIN SMALL LETTER S WITH CARON */ \
   1335 	    UNI(0x3A, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
   1336 	    UNI(0x3B, 0x0165)	/* LATIN SMALL LETTER T WITH CARON */ \
   1337 	    UNI(0x3C, 0x017A)	/* LATIN SMALL LETTER Z WITH ACUTE */ \
   1338 	    UNI(0x3D, 0x02DD)	/* DOUBLE ACUTE ACCENT */ \
   1339 	    UNI(0x3E, 0x017E)	/* LATIN SMALL LETTER Z WITH CARON */ \
   1340 	    UNI(0x3F, 0x017C)	/* LATIN SMALL LETTER Z WITH DOT ABOVE */ \
   1341 	    UNI(0x40, 0x0154)	/* LATIN CAPITAL LETTER R WITH ACUTE */ \
   1342 	    UNI(0x41, 0x00C1)	/* LATIN CAPITAL LETTER A WITH ACUTE */ \
   1343 	    UNI(0x42, 0x00C2)	/* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ \
   1344 	    UNI(0x43, 0x0102)	/* LATIN CAPITAL LETTER A WITH BREVE */ \
   1345 	    UNI(0x44, 0x00C4)	/* LATIN CAPITAL LETTER A WITH DIAERESIS */ \
   1346 	    UNI(0x45, 0x0139)	/* LATIN CAPITAL LETTER L WITH ACUTE */ \
   1347 	    UNI(0x46, 0x0106)	/* LATIN CAPITAL LETTER C WITH ACUTE */ \
   1348 	    UNI(0x47, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
   1349 	    UNI(0x48, 0x010C)	/* LATIN CAPITAL LETTER C WITH CARON */ \
   1350 	    UNI(0x49, 0x00C9)	/* LATIN CAPITAL LETTER E WITH ACUTE */ \
   1351 	    UNI(0x4A, 0x0118)	/* LATIN CAPITAL LETTER E WITH OGONEK */ \
   1352 	    UNI(0x4B, 0x00CB)	/* LATIN CAPITAL LETTER E WITH DIAERESIS */ \
   1353 	    UNI(0x4C, 0x011A)	/* LATIN CAPITAL LETTER E WITH CARON */ \
   1354 	    UNI(0x4D, 0x00CD)	/* LATIN CAPITAL LETTER I WITH ACUTE */ \
   1355 	    UNI(0x4E, 0x00CE)	/* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ \
   1356 	    UNI(0x4F, 0x010E)	/* LATIN CAPITAL LETTER D WITH CARON */ \
   1357 	    UNI(0x50, 0x0110)	/* LATIN CAPITAL LETTER D WITH STROKE */ \
   1358 	    UNI(0x51, 0x0143)	/* LATIN CAPITAL LETTER N WITH ACUTE */ \
   1359 	    UNI(0x52, 0x0147)	/* LATIN CAPITAL LETTER N WITH CARON */ \
   1360 	    UNI(0x53, 0x00D3)	/* LATIN CAPITAL LETTER O WITH ACUTE */ \
   1361 	    UNI(0x54, 0x00D4)	/* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ \
   1362 	    UNI(0x55, 0x0150)	/* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ \
   1363 	    UNI(0x56, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
   1364 	    UNI(0x57, 0x00D7)	/* MULTIPLICATION SIGN */ \
   1365 	    UNI(0x58, 0x0158)	/* LATIN CAPITAL LETTER R WITH CARON */ \
   1366 	    UNI(0x59, 0x016E)	/* LATIN CAPITAL LETTER U WITH RING ABOVE */ \
   1367 	    UNI(0x5A, 0x00DA)	/* LATIN CAPITAL LETTER U WITH ACUTE */ \
   1368 	    UNI(0x5B, 0x0170)	/* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ \
   1369 	    UNI(0x5C, 0x00DC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
   1370 	    UNI(0x5D, 0x00DD)	/* LATIN CAPITAL LETTER Y WITH ACUTE */ \
   1371 	    UNI(0x5E, 0x0162)	/* LATIN CAPITAL LETTER T WITH CEDILLA */ \
   1372 	    UNI(0x5F, 0x00DF)	/* LATIN SMALL LETTER SHARP S */ \
   1373 	    UNI(0x60, 0x0155)	/* LATIN SMALL LETTER R WITH ACUTE */ \
   1374 	    UNI(0x61, 0x00E1)	/* LATIN SMALL LETTER A WITH ACUTE */ \
   1375 	    UNI(0x62, 0x00E2)	/* LATIN SMALL LETTER A WITH CIRCUMFLEX */ \
   1376 	    UNI(0x63, 0x0103)	/* LATIN SMALL LETTER A WITH BREVE */ \
   1377 	    UNI(0x64, 0x00E4)	/* LATIN SMALL LETTER A WITH DIAERESIS */ \
   1378 	    UNI(0x65, 0x013A)	/* LATIN SMALL LETTER L WITH ACUTE */ \
   1379 	    UNI(0x66, 0x0107)	/* LATIN SMALL LETTER C WITH ACUTE */ \
   1380 	    UNI(0x67, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
   1381 	    UNI(0x68, 0x010D)	/* LATIN SMALL LETTER C WITH CARON */ \
   1382 	    UNI(0x69, 0x00E9)	/* LATIN SMALL LETTER E WITH ACUTE */ \
   1383 	    UNI(0x6A, 0x0119)	/* LATIN SMALL LETTER E WITH OGONEK */ \
   1384 	    UNI(0x6B, 0x00EB)	/* LATIN SMALL LETTER E WITH DIAERESIS */ \
   1385 	    UNI(0x6C, 0x011B)	/* LATIN SMALL LETTER E WITH CARON */ \
   1386 	    UNI(0x6D, 0x00ED)	/* LATIN SMALL LETTER I WITH ACUTE */ \
   1387 	    UNI(0x6E, 0x00EE)	/* LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
   1388 	    UNI(0x6F, 0x010F)	/* LATIN SMALL LETTER D WITH CARON */ \
   1389 	    UNI(0x70, 0x0111)	/* LATIN SMALL LETTER D WITH STROKE */ \
   1390 	    UNI(0x71, 0x0144)	/* LATIN SMALL LETTER N WITH ACUTE */ \
   1391 	    UNI(0x72, 0x0148)	/* LATIN SMALL LETTER N WITH CARON */ \
   1392 	    UNI(0x73, 0x00F3)	/* LATIN SMALL LETTER O WITH ACUTE */ \
   1393 	    UNI(0x74, 0x00F4)	/* LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
   1394 	    UNI(0x75, 0x0151)	/* LATIN SMALL LETTER O WITH DOUBLE ACUTE */ \
   1395 	    UNI(0x76, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
   1396 	    UNI(0x77, 0x00F7)	/* DIVISION SIGN */ \
   1397 	    UNI(0x78, 0x0159)	/* LATIN SMALL LETTER R WITH CARON */ \
   1398 	    UNI(0x79, 0x016F)	/* LATIN SMALL LETTER U WITH RING ABOVE */ \
   1399 	    UNI(0x7A, 0x00FA)	/* LATIN SMALL LETTER U WITH ACUTE */ \
   1400 	    UNI(0x7B, 0x0171)	/* LATIN SMALL LETTER U WITH DOUBLE ACUTE */ \
   1401 	    UNI(0x7C, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
   1402 	    UNI(0x7D, 0x00FD)	/* LATIN SMALL LETTER Y WITH ACUTE */ \
   1403 	    UNI(0x7E, 0x0163)	/* LATIN SMALL LETTER T WITH CEDILLA */ \
   1404 	    UNI(0x7F, 0x02D9)	/* DOT ABOVE */ \
   1405 	} \
   1406 	end_CODEPAGE()
   1407 
   1408 #define unmap_ISO_Latin_2(code,dft) \
   1409 	switch (code) { \
   1410 	    MAP(0x21, 0x9A)	/* LATIN CAPITAL LETTER A WITH OGONEK */ \
   1411 	    MAP(0x22, 0x90)	/* BREVE */ \
   1412 	    MAP(0x23, 0x9B)	/* LATIN CAPITAL LETTER L WITH STROKE */ \
   1413 	    MAP(0x25, 0x9C)	/* LATIN CAPITAL LETTER L WITH CARON */ \
   1414 	    MAP(0x26, 0x9D)	/* LATIN CAPITAL LETTER S WITH ACUTE */ \
   1415 	    MAP(0x29, 0x9E)	/* LATIN CAPITAL LETTER S WITH CARON */ \
   1416 	    MAP(0x2A, 0x9F)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
   1417 	    MAP(0x2B, 0x21)	/* LATIN CAPITAL LETTER T WITH CARON */ \
   1418 	    MAP(0x2C, 0x22)	/* LATIN CAPITAL LETTER Z WITH ACUTE */ \
   1419 	    MAP(0x2E, 0x23)	/* LATIN CAPITAL LETTER Z WITH CARON */ \
   1420 	    MAP(0x2F, 0x24)	/* LATIN CAPITAL LETTER Z WITH DOT ABOVE */ \
   1421 	    MAP(0x31, 0x25)	/* LATIN SMALL LETTER A WITH OGONEK */ \
   1422 	    MAP(0x32, 0x91)	/* OGONEK */ \
   1423 	    MAP(0x33, 0x26)	/* LATIN SMALL LETTER L WITH STROKE */ \
   1424 	    MAP(0x35, 0x27)	/* LATIN SMALL LETTER L WITH CARON */ \
   1425 	    MAP(0x36, 0x28)	/* LATIN SMALL LETTER S WITH ACUTE */ \
   1426 	    MAP(0x37, 0x92)	/* CARON */ \
   1427 	    MAP(0x39, 0x29)	/* LATIN SMALL LETTER S WITH CARON */ \
   1428 	    MAP(0x3A, 0x2A)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
   1429 	    MAP(0x3B, 0x2B)	/* LATIN SMALL LETTER T WITH CARON */ \
   1430 	    MAP(0x3C, 0x2C)	/* LATIN SMALL LETTER Z WITH ACUTE */ \
   1431 	    MAP(0x3D, 0x93)	/* DOUBLE ACUTE ACCENT */ \
   1432 	    MAP(0x3E, 0x2D)	/* LATIN SMALL LETTER Z WITH CARON */ \
   1433 	    MAP(0x3F, 0x2E)	/* LATIN SMALL LETTER Z WITH DOT ABOVE */ \
   1434 	    MAP(0x40, 0x2F)	/* LATIN CAPITAL LETTER R WITH ACUTE */ \
   1435 	    MAP(0x43, 0x30)	/* LATIN CAPITAL LETTER A WITH BREVE */ \
   1436 	    MAP(0x45, 0x31)	/* LATIN CAPITAL LETTER L WITH ACUTE */ \
   1437 	    MAP(0x46, 0x32)	/* LATIN CAPITAL LETTER C WITH ACUTE */ \
   1438 	    MAP(0x48, 0x33)	/* LATIN CAPITAL LETTER C WITH CARON */ \
   1439 	    MAP(0x4A, 0x34)	/* LATIN CAPITAL LETTER E WITH OGONEK */ \
   1440 	    MAP(0x4C, 0x35)	/* LATIN CAPITAL LETTER E WITH CARON */ \
   1441 	    MAP(0x4F, 0x36)	/* LATIN CAPITAL LETTER D WITH CARON */ \
   1442 	    MAP(0x51, 0x37)	/* LATIN CAPITAL LETTER N WITH ACUTE */ \
   1443 	    MAP(0x52, 0x38)	/* LATIN CAPITAL LETTER N WITH CARON */ \
   1444 	    MAP(0x55, 0x39)	/* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ \
   1445 	    MAP(0x58, 0x3A)	/* LATIN CAPITAL LETTER R WITH CARON */ \
   1446 	    MAP(0x59, 0x3B)	/* LATIN CAPITAL LETTER U WITH RING ABOVE */ \
   1447 	    MAP(0x5B, 0x3C)	/* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ \
   1448 	    MAP(0x5E, 0x3D)	/* LATIN CAPITAL LETTER T WITH CEDILLA */ \
   1449 	    MAP(0x60, 0x3E)	/* LATIN SMALL LETTER R WITH ACUTE */ \
   1450 	    MAP(0x63, 0x3F)	/* LATIN SMALL LETTER A WITH BREVE */ \
   1451 	    MAP(0x65, 0x40)	/* LATIN SMALL LETTER L WITH ACUTE */ \
   1452 	    MAP(0x66, 0x41)	/* LATIN SMALL LETTER C WITH ACUTE */ \
   1453 	    MAP(0x68, 0x42)	/* LATIN SMALL LETTER C WITH CARON */ \
   1454 	    MAP(0x6A, 0x43)	/* LATIN SMALL LETTER E WITH OGONEK */ \
   1455 	    MAP(0x6C, 0x44)	/* LATIN SMALL LETTER E WITH CARON */ \
   1456 	    MAP(0x6F, 0x45)	/* LATIN SMALL LETTER D WITH CARON */ \
   1457 	    MAP(0x70, 0x46)	/* LATIN SMALL LETTER D WITH STROKE */ \
   1458 	    MAP(0x71, 0x47)	/* LATIN SMALL LETTER N WITH ACUTE */ \
   1459 	    MAP(0x72, 0x48)	/* LATIN SMALL LETTER N WITH CARON */ \
   1460 	    MAP(0x75, 0x49)	/* LATIN SMALL LETTER O WITH DOUBLE ACUTE */ \
   1461 	    MAP(0x78, 0x4A)	/* LATIN SMALL LETTER R WITH CARON */ \
   1462 	    MAP(0x79, 0x4B)	/* LATIN SMALL LETTER U WITH RING ABOVE */ \
   1463 	    MAP(0x7B, 0x4C)	/* LATIN SMALL LETTER U WITH DOUBLE ACUTE */ \
   1464 	    MAP(0x7E, 0x4D)	/* LATIN SMALL LETTER T WITH CEDILLA */ \
   1465 	    MAP(0x7F, 0x94)	/* DOT ABOVE */ \
   1466 	    default: dft; break; \
   1467 	}
   1468 
   1469 /*
   1470  * ISO Latin-5 is 8859-9
   1471  */
   1472 #define map_ISO_Latin_5(code) \
   1473 	begin_CODEPAGE(96) \
   1474 	switch (code) { \
   1475 	    UNI(0x20, 0x00A0)	/* NO-BREAK SPACE */ \
   1476 	    UNI(0x21, 0x00A1)	/* INVERTED EXCLAMATION MARK */ \
   1477 	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
   1478 	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
   1479 	    UNI(0x24, 0x00A4)	/* CURRENCY SIGN */ \
   1480 	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
   1481 	    UNI(0x26, 0x00A6)	/* BROKEN BAR */ \
   1482 	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
   1483 	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
   1484 	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
   1485 	    UNI(0x2A, 0x00AA)	/* FEMININE ORDINAL INDICATOR */ \
   1486 	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   1487 	    UNI(0x2C, 0x00AC)	/* NOT SIGN */ \
   1488 	    UNI(0x2D, 0x00AD)	/* SOFT HYPHEN */ \
   1489 	    UNI(0x2E, 0x00AE)	/* REGISTERED SIGN */ \
   1490 	    UNI(0x2F, 0x00AF)	/* MACRON */ \
   1491 	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
   1492 	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
   1493 	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
   1494 	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
   1495 	    UNI(0x34, 0x00B4)	/* ACUTE ACCENT */ \
   1496 	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
   1497 	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
   1498 	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
   1499 	    UNI(0x38, 0x00B8)	/* CEDILLA */ \
   1500 	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
   1501 	    UNI(0x3A, 0x00BA)	/* MASCULINE ORDINAL INDICATOR */ \
   1502 	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   1503 	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
   1504 	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
   1505 	    UNI(0x3E, 0x00BE)	/* VULGAR FRACTION THREE QUARTERS */ \
   1506 	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
   1507 	    UNI(0x40, 0x00C0)	/* LATIN CAPITAL LETTER A WITH GRAVE */ \
   1508 	    UNI(0x41, 0x00C1)	/* LATIN CAPITAL LETTER A WITH ACUTE */ \
   1509 	    UNI(0x42, 0x00C2)	/* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ \
   1510 	    UNI(0x43, 0x00C3)	/* LATIN CAPITAL LETTER A WITH TILDE */ \
   1511 	    UNI(0x44, 0x00C4)	/* LATIN CAPITAL LETTER A WITH DIAERESIS */ \
   1512 	    UNI(0x45, 0x00C5)	/* LATIN CAPITAL LETTER A WITH RING ABOVE */ \
   1513 	    UNI(0x46, 0x00C6)	/* LATIN CAPITAL LETTER AE */ \
   1514 	    UNI(0x47, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
   1515 	    UNI(0x48, 0x00C8)	/* LATIN CAPITAL LETTER E WITH GRAVE */ \
   1516 	    UNI(0x49, 0x00C9)	/* LATIN CAPITAL LETTER E WITH ACUTE */ \
   1517 	    UNI(0x4A, 0x00CA)	/* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ \
   1518 	    UNI(0x4B, 0x00CB)	/* LATIN CAPITAL LETTER E WITH DIAERESIS */ \
   1519 	    UNI(0x4C, 0x00CC)	/* LATIN CAPITAL LETTER I WITH GRAVE */ \
   1520 	    UNI(0x4D, 0x00CD)	/* LATIN CAPITAL LETTER I WITH ACUTE */ \
   1521 	    UNI(0x4E, 0x00CE)	/* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ \
   1522 	    UNI(0x4F, 0x00CF)	/* LATIN CAPITAL LETTER I WITH DIAERESIS */ \
   1523 	    UNI(0x50, 0x011E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
   1524 	    UNI(0x51, 0x00D1)	/* LATIN CAPITAL LETTER N WITH TILDE */ \
   1525 	    UNI(0x52, 0x00D2)	/* LATIN CAPITAL LETTER O WITH GRAVE */ \
   1526 	    UNI(0x53, 0x00D3)	/* LATIN CAPITAL LETTER O WITH ACUTE */ \
   1527 	    UNI(0x54, 0x00D4)	/* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ \
   1528 	    UNI(0x55, 0x00D5)	/* LATIN CAPITAL LETTER O WITH TILDE */ \
   1529 	    UNI(0x56, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
   1530 	    UNI(0x57, 0x00D7)	/* MULTIPLICATION SIGN */ \
   1531 	    UNI(0x58, 0x00D8)	/* LATIN CAPITAL LETTER O WITH STROKE */ \
   1532 	    UNI(0x59, 0x00D9)	/* LATIN CAPITAL LETTER U WITH GRAVE */ \
   1533 	    UNI(0x5A, 0x00DA)	/* LATIN CAPITAL LETTER U WITH ACUTE */ \
   1534 	    UNI(0x5B, 0x00DB)	/* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ \
   1535 	    UNI(0x5C, 0x00DC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
   1536 	    UNI(0x5D, 0x0130)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
   1537 	    UNI(0x5E, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
   1538 	    UNI(0x5F, 0x00DF)	/* LATIN SMALL LETTER SHARP S */ \
   1539 	    UNI(0x60, 0x00E0)	/* LATIN SMALL LETTER A WITH GRAVE */ \
   1540 	    UNI(0x61, 0x00E1)	/* LATIN SMALL LETTER A WITH ACUTE */ \
   1541 	    UNI(0x62, 0x00E2)	/* LATIN SMALL LETTER A WITH CIRCUMFLEX */ \
   1542 	    UNI(0x63, 0x00E3)	/* LATIN SMALL LETTER A WITH TILDE */ \
   1543 	    UNI(0x64, 0x00E4)	/* LATIN SMALL LETTER A WITH DIAERESIS */ \
   1544 	    UNI(0x65, 0x00E5)	/* LATIN SMALL LETTER A WITH RING ABOVE */ \
   1545 	    UNI(0x66, 0x00E6)	/* LATIN SMALL LETTER AE */ \
   1546 	    UNI(0x67, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
   1547 	    UNI(0x68, 0x00E8)	/* LATIN SMALL LETTER E WITH GRAVE */ \
   1548 	    UNI(0x69, 0x00E9)	/* LATIN SMALL LETTER E WITH ACUTE */ \
   1549 	    UNI(0x6A, 0x00EA)	/* LATIN SMALL LETTER E WITH CIRCUMFLEX */ \
   1550 	    UNI(0x6B, 0x00EB)	/* LATIN SMALL LETTER E WITH DIAERESIS */ \
   1551 	    UNI(0x6C, 0x00EC)	/* LATIN SMALL LETTER I WITH GRAVE */ \
   1552 	    UNI(0x6D, 0x00ED)	/* LATIN SMALL LETTER I WITH ACUTE */ \
   1553 	    UNI(0x6E, 0x00EE)	/* LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
   1554 	    UNI(0x6F, 0x00EF)	/* LATIN SMALL LETTER I WITH DIAERESIS */ \
   1555 	    UNI(0x70, 0x011F)	/* LATIN SMALL LETTER G WITH BREVE */ \
   1556 	    UNI(0x71, 0x00F1)	/* LATIN SMALL LETTER N WITH TILDE */ \
   1557 	    UNI(0x72, 0x00F2)	/* LATIN SMALL LETTER O WITH GRAVE */ \
   1558 	    UNI(0x73, 0x00F3)	/* LATIN SMALL LETTER O WITH ACUTE */ \
   1559 	    UNI(0x74, 0x00F4)	/* LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
   1560 	    UNI(0x75, 0x00F5)	/* LATIN SMALL LETTER O WITH TILDE */ \
   1561 	    UNI(0x76, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
   1562 	    UNI(0x77, 0x00F7)	/* DIVISION SIGN */ \
   1563 	    UNI(0x78, 0x00F8)	/* LATIN SMALL LETTER O WITH STROKE */ \
   1564 	    UNI(0x79, 0x00F9)	/* LATIN SMALL LETTER U WITH GRAVE */ \
   1565 	    UNI(0x7A, 0x00FA)	/* LATIN SMALL LETTER U WITH ACUTE */ \
   1566 	    UNI(0x7B, 0x00FB)	/* LATIN SMALL LETTER U WITH CIRCUMFLEX */ \
   1567 	    UNI(0x7C, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
   1568 	    UNI(0x7D, 0x0131)	/* LATIN SMALL LETTER DOTLESS I */ \
   1569 	    UNI(0x7E, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
   1570 	    UNI(0x7F, 0x00FF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
   1571 	} \
   1572 	end_CODEPAGE()
   1573 
   1574 #define unmap_ISO_Latin_5(code,dft) \
   1575 	switch (code) { \
   1576 	    MAP(0x50, 0x4E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
   1577 	    MAP(0x5D, 0x4F)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
   1578 	    MAP(0x5E, 0x9F)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
   1579 	    MAP(0x70, 0x50)	/* LATIN SMALL LETTER G WITH BREVE */ \
   1580 	    MAP(0x7D, 0x51)	/* LATIN SMALL LETTER DOTLESS I */ \
   1581 	    MAP(0x7E, 0x2A)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
   1582 	    default: dft; break; \
   1583 	}
   1584 
   1585 /*
   1586  * DEC Cyrillic from screenshot
   1587  */
   1588 #define map_DEC_Cyrillic(code) \
   1589 	begin_CODEPAGE(94) \
   1590 	switch (code) { \
   1591 	    XXX(0x21, UNDEF)	/* undefined */ \
   1592 	    XXX(0x22, UNDEF)	/* undefined */ \
   1593 	    XXX(0x23, UNDEF)	/* undefined */ \
   1594 	    XXX(0x24, UNDEF)	/* undefined */ \
   1595 	    XXX(0x25, UNDEF)	/* undefined */ \
   1596 	    XXX(0x26, UNDEF)	/* undefined */ \
   1597 	    XXX(0x27, UNDEF)	/* undefined */ \
   1598 	    XXX(0x28, UNDEF)	/* undefined */ \
   1599 	    XXX(0x29, UNDEF)	/* undefined */ \
   1600 	    XXX(0x2A, UNDEF)	/* undefined */ \
   1601 	    XXX(0x2B, UNDEF)	/* undefined */ \
   1602 	    XXX(0x2C, UNDEF)	/* undefined */ \
   1603 	    XXX(0x2D, UNDEF)	/* undefined */ \
   1604 	    XXX(0x2E, UNDEF)	/* undefined */ \
   1605 	    XXX(0x2F, UNDEF)	/* undefined */ \
   1606 	    XXX(0x30, UNDEF)	/* undefined */ \
   1607 	    XXX(0x31, UNDEF)	/* undefined */ \
   1608 	    XXX(0x32, UNDEF)	/* undefined */ \
   1609 	    XXX(0x33, UNDEF)	/* undefined */ \
   1610 	    XXX(0x34, UNDEF)	/* undefined */ \
   1611 	    XXX(0x35, UNDEF)	/* undefined */ \
   1612 	    XXX(0x36, UNDEF)	/* undefined */ \
   1613 	    XXX(0x37, UNDEF)	/* undefined */ \
   1614 	    XXX(0x38, UNDEF)	/* undefined */ \
   1615 	    XXX(0x39, UNDEF)	/* undefined */ \
   1616 	    XXX(0x3A, UNDEF)	/* undefined */ \
   1617 	    XXX(0x3B, UNDEF)	/* undefined */ \
   1618 	    XXX(0x3C, UNDEF)	/* undefined */ \
   1619 	    XXX(0x3D, UNDEF)	/* undefined */ \
   1620 	    XXX(0x3E, UNDEF)	/* undefined */ \
   1621 	    XXX(0x3F, UNDEF)	/* undefined */ \
   1622 	    UNI(0x40, 0x044E)	/* CYRILLIC SMALL LETTER YU */ \
   1623 	    UNI(0x41, 0x0430)	/* CYRILLIC SMALL LETTER A */ \
   1624 	    UNI(0x42, 0x0431)	/* CYRILLIC SMALL LETTER BE */ \
   1625 	    UNI(0x43, 0x0446)	/* CYRILLIC SMALL LETTER TSE */ \
   1626 	    UNI(0x44, 0x0434)	/* CYRILLIC SMALL LETTER DE */ \
   1627 	    UNI(0x45, 0x0435)	/* CYRILLIC SMALL LETTER IE */ \
   1628 	    UNI(0x46, 0x0444)	/* CYRILLIC SMALL LETTER EF */ \
   1629 	    UNI(0x47, 0x0433)	/* CYRILLIC SMALL LETTER GHE */ \
   1630 	    UNI(0x48, 0x0445)	/* CYRILLIC SMALL LETTER HA */ \
   1631 	    UNI(0x49, 0x0438)	/* CYRILLIC SMALL LETTER I */ \
   1632 	    UNI(0x4A, 0x0439)	/* CYRILLIC SMALL LETTER SHORT I */ \
   1633 	    UNI(0x4B, 0x043A)	/* CYRILLIC SMALL LETTER KA */ \
   1634 	    UNI(0x4C, 0x043B)	/* CYRILLIC SMALL LETTER EL */ \
   1635 	    UNI(0x4D, 0x043C)	/* CYRILLIC SMALL LETTER EM */ \
   1636 	    UNI(0x4E, 0x043D)	/* CYRILLIC SMALL LETTER EN */ \
   1637 	    UNI(0x4F, 0x043E)	/* CYRILLIC SMALL LETTER O */ \
   1638 	    UNI(0x50, 0x043F)	/* CYRILLIC SMALL LETTER PE */ \
   1639 	    UNI(0x51, 0x044F)	/* CYRILLIC SMALL LETTER YA */ \
   1640 	    UNI(0x52, 0x0440)	/* CYRILLIC SMALL LETTER ER */ \
   1641 	    UNI(0x53, 0x0441)	/* CYRILLIC SMALL LETTER ES */ \
   1642 	    UNI(0x54, 0x0442)	/* CYRILLIC SMALL LETTER TE */ \
   1643 	    UNI(0x55, 0x0443)	/* CYRILLIC SMALL LETTER U */ \
   1644 	    UNI(0x56, 0x0436)	/* CYRILLIC SMALL LETTER ZHE */ \
   1645 	    UNI(0x57, 0x0432)	/* CYRILLIC SMALL LETTER VE */ \
   1646 	    UNI(0x58, 0x044C)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
   1647 	    UNI(0x59, 0x044B)	/* CYRILLIC SMALL LETTER YERU */ \
   1648 	    UNI(0x5A, 0x0437)	/* CYRILLIC SMALL LETTER ZE */ \
   1649 	    UNI(0x5B, 0x0448)	/* CYRILLIC SMALL LETTER SHA */ \
   1650 	    UNI(0x5C, 0x044D)	/* CYRILLIC SMALL LETTER E */ \
   1651 	    UNI(0x5D, 0x0449)	/* CYRILLIC SMALL LETTER SHCHA */ \
   1652 	    UNI(0x5E, 0x0447)	/* CYRILLIC SMALL LETTER CHE */ \
   1653 	    UNI(0x5F, 0x044A)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
   1654 	    UNI(0x60, 0x042E)	/* CYRILLIC CAPITAL LETTER YU */ \
   1655 	    UNI(0x61, 0x0410)	/* CYRILLIC CAPITAL LETTER A */ \
   1656 	    UNI(0x62, 0x0411)	/* CYRILLIC CAPITAL LETTER BE */ \
   1657 	    UNI(0x63, 0x0426)	/* CYRILLIC CAPITAL LETTER TSE */ \
   1658 	    UNI(0x64, 0x0414)	/* CYRILLIC CAPITAL LETTER DE */ \
   1659 	    UNI(0x65, 0x0415)	/* CYRILLIC CAPITAL LETTER IE */ \
   1660 	    UNI(0x66, 0x0424)	/* CYRILLIC CAPITAL LETTER EF */ \
   1661 	    UNI(0x67, 0x0413)	/* CYRILLIC CAPITAL LETTER GHE */ \
   1662 	    UNI(0x68, 0x0425)	/* CYRILLIC CAPITAL LETTER HA */ \
   1663 	    UNI(0x69, 0x0418)	/* CYRILLIC CAPITAL LETTER I */ \
   1664 	    UNI(0x6A, 0x0419)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
   1665 	    UNI(0x6B, 0x041A)	/* CYRILLIC CAPITAL LETTER KA */ \
   1666 	    UNI(0x6C, 0x041B)	/* CYRILLIC CAPITAL LETTER EL */ \
   1667 	    UNI(0x6D, 0x041C)	/* CYRILLIC CAPITAL LETTER EM */ \
   1668 	    UNI(0x6E, 0x041D)	/* CYRILLIC CAPITAL LETTER EN */ \
   1669 	    UNI(0x6F, 0x041E)	/* CYRILLIC CAPITAL LETTER O */ \
   1670 	    UNI(0x70, 0x041F)	/* CYRILLIC CAPITAL LETTER PE */ \
   1671 	    UNI(0x71, 0x042F)	/* CYRILLIC CAPITAL LETTER YA */ \
   1672 	    UNI(0x72, 0x0420)	/* CYRILLIC CAPITAL LETTER ER */ \
   1673 	    UNI(0x73, 0x0421)	/* CYRILLIC CAPITAL LETTER ES */ \
   1674 	    UNI(0x74, 0x0422)	/* CYRILLIC CAPITAL LETTER TE */ \
   1675 	    UNI(0x75, 0x0423)	/* CYRILLIC CAPITAL LETTER U */ \
   1676 	    UNI(0x76, 0x0416)	/* CYRILLIC CAPITAL LETTER ZHE */ \
   1677 	    UNI(0x77, 0x0412)	/* CYRILLIC CAPITAL LETTER VE */ \
   1678 	    UNI(0x78, 0x042C)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
   1679 	    UNI(0x79, 0x042B)	/* CYRILLIC CAPITAL LETTER YERU */ \
   1680 	    UNI(0x7A, 0x0417)	/* CYRILLIC CAPITAL LETTER ZE */ \
   1681 	    UNI(0x7B, 0x0428)	/* CYRILLIC CAPITAL LETTER SHA */ \
   1682 	    UNI(0x7C, 0x042D)	/* CYRILLIC CAPITAL LETTER E */ \
   1683 	    UNI(0x7D, 0x0429)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
   1684 	    UNI(0x7E, 0x0427)	/* CYRILLIC CAPITAL LETTER CHE */ \
   1685 	} \
   1686 	end_CODEPAGE()
   1687 
   1688 #define unmap_DEC_Cyrillic(code,dft) \
   1689 	switch (code) { \
   1690 	    MAP(0x21, 0x1B)	/* undefined */ \
   1691 	    MAP(0x22, 0x1B)	/* undefined */ \
   1692 	    MAP(0x23, 0x1B)	/* undefined */ \
   1693 	    MAP(0x24, 0x1B)	/* undefined */ \
   1694 	    MAP(0x25, 0x1B)	/* undefined */ \
   1695 	    MAP(0x26, 0x1B)	/* undefined */ \
   1696 	    MAP(0x27, 0x1B)	/* undefined */ \
   1697 	    MAP(0x28, 0x1B)	/* undefined */ \
   1698 	    MAP(0x29, 0x1B)	/* undefined */ \
   1699 	    MAP(0x2A, 0x1B)	/* undefined */ \
   1700 	    MAP(0x2B, 0x1B)	/* undefined */ \
   1701 	    MAP(0x2C, 0x1B)	/* undefined */ \
   1702 	    MAP(0x2D, 0x1B)	/* undefined */ \
   1703 	    MAP(0x2E, 0x1B)	/* undefined */ \
   1704 	    MAP(0x2F, 0x1B)	/* undefined */ \
   1705 	    MAP(0x30, 0x1B)	/* undefined */ \
   1706 	    MAP(0x31, 0x1B)	/* undefined */ \
   1707 	    MAP(0x32, 0x1B)	/* undefined */ \
   1708 	    MAP(0x33, 0x1B)	/* undefined */ \
   1709 	    MAP(0x34, 0x1B)	/* undefined */ \
   1710 	    MAP(0x35, 0x1B)	/* undefined */ \
   1711 	    MAP(0x36, 0x1B)	/* undefined */ \
   1712 	    MAP(0x37, 0x1B)	/* undefined */ \
   1713 	    MAP(0x38, 0x1B)	/* undefined */ \
   1714 	    MAP(0x39, 0x1B)	/* undefined */ \
   1715 	    MAP(0x3A, 0x1B)	/* undefined */ \
   1716 	    MAP(0x3B, 0x1B)	/* undefined */ \
   1717 	    MAP(0x3C, 0x1B)	/* undefined */ \
   1718 	    MAP(0x3D, 0x1B)	/* undefined */ \
   1719 	    MAP(0x3E, 0x1B)	/* undefined */ \
   1720 	    MAP(0x3F, 0x1B)	/* undefined */ \
   1721 	    MAP(0x40, 0x4F)	/* CYRILLIC SMALL LETTER YU */ \
   1722 	    MAP(0x41, 0x31)	/* CYRILLIC SMALL LETTER A */ \
   1723 	    MAP(0x42, 0x32)	/* CYRILLIC SMALL LETTER BE */ \
   1724 	    MAP(0x43, 0x47)	/* CYRILLIC SMALL LETTER TSE */ \
   1725 	    MAP(0x44, 0x35)	/* CYRILLIC SMALL LETTER DE */ \
   1726 	    MAP(0x45, 0x36)	/* CYRILLIC SMALL LETTER IE */ \
   1727 	    MAP(0x46, 0x45)	/* CYRILLIC SMALL LETTER EF */ \
   1728 	    MAP(0x47, 0x34)	/* CYRILLIC SMALL LETTER GHE */ \
   1729 	    MAP(0x48, 0x46)	/* CYRILLIC SMALL LETTER HA */ \
   1730 	    MAP(0x49, 0x39)	/* CYRILLIC SMALL LETTER I */ \
   1731 	    MAP(0x4A, 0x3A)	/* CYRILLIC SMALL LETTER SHORT I */ \
   1732 	    MAP(0x4B, 0x3B)	/* CYRILLIC SMALL LETTER KA */ \
   1733 	    MAP(0x4C, 0x3C)	/* CYRILLIC SMALL LETTER EL */ \
   1734 	    MAP(0x4D, 0x3D)	/* CYRILLIC SMALL LETTER EM */ \
   1735 	    MAP(0x4E, 0x3E)	/* CYRILLIC SMALL LETTER EN */ \
   1736 	    MAP(0x4F, 0x3F)	/* CYRILLIC SMALL LETTER O */ \
   1737 	    MAP(0x50, 0x40)	/* CYRILLIC SMALL LETTER PE */ \
   1738 	    MAP(0x51, 0x50)	/* CYRILLIC SMALL LETTER YA */ \
   1739 	    MAP(0x52, 0x41)	/* CYRILLIC SMALL LETTER ER */ \
   1740 	    MAP(0x53, 0x42)	/* CYRILLIC SMALL LETTER ES */ \
   1741 	    MAP(0x54, 0x43)	/* CYRILLIC SMALL LETTER TE */ \
   1742 	    MAP(0x55, 0x44)	/* CYRILLIC SMALL LETTER U */ \
   1743 	    MAP(0x56, 0x37)	/* CYRILLIC SMALL LETTER ZHE */ \
   1744 	    MAP(0x57, 0x33)	/* CYRILLIC SMALL LETTER VE */ \
   1745 	    MAP(0x58, 0x4D)	/* CYRILLIC SMALL LETTER SOFT SIGN */ \
   1746 	    MAP(0x59, 0x4C)	/* CYRILLIC SMALL LETTER YERU */ \
   1747 	    MAP(0x5A, 0x38)	/* CYRILLIC SMALL LETTER ZE */ \
   1748 	    MAP(0x5B, 0x49)	/* CYRILLIC SMALL LETTER SHA */ \
   1749 	    MAP(0x5C, 0x4E)	/* CYRILLIC SMALL LETTER E */ \
   1750 	    MAP(0x5D, 0x4A)	/* CYRILLIC SMALL LETTER SHCHA */ \
   1751 	    MAP(0x5E, 0x48)	/* CYRILLIC SMALL LETTER CHE */ \
   1752 	    MAP(0x5F, 0x4B)	/* CYRILLIC SMALL LETTER HARD SIGN */ \
   1753 	    MAP(0x60, 0x2F)	/* CYRILLIC CAPITAL LETTER YU */ \
   1754 	    MAP(0x61, 0x11)	/* CYRILLIC CAPITAL LETTER A */ \
   1755 	    MAP(0x62, 0x12)	/* CYRILLIC CAPITAL LETTER BE */ \
   1756 	    MAP(0x63, 0x27)	/* CYRILLIC CAPITAL LETTER TSE */ \
   1757 	    MAP(0x64, 0x15)	/* CYRILLIC CAPITAL LETTER DE */ \
   1758 	    MAP(0x65, 0x16)	/* CYRILLIC CAPITAL LETTER IE */ \
   1759 	    MAP(0x66, 0x25)	/* CYRILLIC CAPITAL LETTER EF */ \
   1760 	    MAP(0x67, 0x14)	/* CYRILLIC CAPITAL LETTER GHE */ \
   1761 	    MAP(0x68, 0x26)	/* CYRILLIC CAPITAL LETTER HA */ \
   1762 	    MAP(0x69, 0x19)	/* CYRILLIC CAPITAL LETTER I */ \
   1763 	    MAP(0x6A, 0x1A)	/* CYRILLIC CAPITAL LETTER SHORT I */ \
   1764 	    MAP(0x6B, 0x1B)	/* CYRILLIC CAPITAL LETTER KA */ \
   1765 	    MAP(0x6C, 0x1C)	/* CYRILLIC CAPITAL LETTER EL */ \
   1766 	    MAP(0x6D, 0x1D)	/* CYRILLIC CAPITAL LETTER EM */ \
   1767 	    MAP(0x6E, 0x1E)	/* CYRILLIC CAPITAL LETTER EN */ \
   1768 	    MAP(0x6F, 0x1F)	/* CYRILLIC CAPITAL LETTER O */ \
   1769 	    MAP(0x70, 0x20)	/* CYRILLIC CAPITAL LETTER PE */ \
   1770 	    MAP(0x71, 0x30)	/* CYRILLIC CAPITAL LETTER YA */ \
   1771 	    MAP(0x72, 0x21)	/* CYRILLIC CAPITAL LETTER ER */ \
   1772 	    MAP(0x73, 0x22)	/* CYRILLIC CAPITAL LETTER ES */ \
   1773 	    MAP(0x74, 0x23)	/* CYRILLIC CAPITAL LETTER TE */ \
   1774 	    MAP(0x75, 0x24)	/* CYRILLIC CAPITAL LETTER U */ \
   1775 	    MAP(0x76, 0x17)	/* CYRILLIC CAPITAL LETTER ZHE */ \
   1776 	    MAP(0x77, 0x13)	/* CYRILLIC CAPITAL LETTER VE */ \
   1777 	    MAP(0x78, 0x2D)	/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
   1778 	    MAP(0x79, 0x2C)	/* CYRILLIC CAPITAL LETTER YERU */ \
   1779 	    MAP(0x7A, 0x18)	/* CYRILLIC CAPITAL LETTER ZE */ \
   1780 	    MAP(0x7B, 0x29)	/* CYRILLIC CAPITAL LETTER SHA */ \
   1781 	    MAP(0x7C, 0x2E)	/* CYRILLIC CAPITAL LETTER E */ \
   1782 	    MAP(0x7D, 0x2A)	/* CYRILLIC CAPITAL LETTER SHCHA */ \
   1783 	    MAP(0x7E, 0x28)	/* CYRILLIC CAPITAL LETTER CHE */ \
   1784 	    default: dft; break; \
   1785 	}
   1786 
   1787 /*
   1788  * figure A-24 "DEC Greek Supplemental Character Set"
   1789  */
   1790 #define map_DEC_Greek_Supp(code) \
   1791 	begin_CODEPAGE(94) \
   1792 	switch (code) { \
   1793 	    UNI(0x21, 0x00A1)	/* LEFT SINGLE QUOTATION MARK */ \
   1794 	    UNI(0x22, 0x00A2)	/* RIGHT SINGLE QUOTATION MARK */ \
   1795 	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
   1796 	    XXX(0x24, UNDEF)	/* EURO SIGN */ \
   1797 	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
   1798 	    XXX(0x26, UNDEF)	/* BROKEN BAR */ \
   1799 	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
   1800 	    UNI(0x28, 0x00A4)	/* CURRENCY SIGN */ \
   1801 	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
   1802 	    UNI(0x2A, 0x00AA)	/* FEMININE ORDINAL INDICATOR */ \
   1803 	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   1804 	    XXX(0x2C, UNDEF)	/* reserved */ \
   1805 	    XXX(0x2D, UNDEF)	/* reserved */ \
   1806 	    XXX(0x2E, UNDEF)	/* reserved */ \
   1807 	    XXX(0x2F, UNDEF)	/* reserved */ \
   1808 	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
   1809 	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
   1810 	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
   1811 	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
   1812 	    XXX(0x34, UNDEF)	/* reserved */ \
   1813 	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
   1814 	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
   1815 	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
   1816 	    XXX(0x38, UNDEF)	/* reserved */ \
   1817 	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
   1818 	    UNI(0x3A, 0x00BA)	/* MASCULINE ORDINAL INDICATOR */ \
   1819 	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   1820 	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
   1821 	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
   1822 	    XXX(0x3E, UNDEF)	/* reserved */ \
   1823 	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
   1824 	    UNI(0x40, 0x03CA)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
   1825 	    UNI(0x41, 0x0391)	/* GREEK CAPITAL LETTER ALPHA */ \
   1826 	    UNI(0x42, 0x0392)	/* GREEK CAPITAL LETTER BETA */ \
   1827 	    UNI(0x43, 0x0393)	/* GREEK CAPITAL LETTER GAMMA */ \
   1828 	    UNI(0x44, 0x0394)	/* GREEK CAPITAL LETTER DELTA */ \
   1829 	    UNI(0x45, 0x0395)	/* GREEK CAPITAL LETTER EPSILON */ \
   1830 	    UNI(0x46, 0x0396)	/* GREEK CAPITAL LETTER ZETA */ \
   1831 	    UNI(0x47, 0x0397)	/* GREEK CAPITAL LETTER ETA */ \
   1832 	    UNI(0x48, 0x0398)	/* GREEK CAPITAL LETTER THETA */ \
   1833 	    UNI(0x49, 0x0399)	/* GREEK CAPITAL LETTER IOTA */ \
   1834 	    UNI(0x4A, 0x039A)	/* GREEK CAPITAL LETTER KAPPA */ \
   1835 	    UNI(0x4B, 0x039B)	/* GREEK CAPITAL LETTER LAMDA */ \
   1836 	    UNI(0x4C, 0x039C)	/* GREEK CAPITAL LETTER MU */ \
   1837 	    UNI(0x4D, 0x039D)	/* GREEK CAPITAL LETTER NU */ \
   1838 	    UNI(0x4E, 0x039E)	/* GREEK CAPITAL LETTER XI */ \
   1839 	    UNI(0x4F, 0x039F)	/* GREEK CAPITAL LETTER OMICRON */ \
   1840 	    XXX(0x50, UNDEF)	/* reserved */ \
   1841 	    UNI(0x51, 0x03A0)	/* GREEK CAPITAL LETTER PI */ \
   1842 	    UNI(0x52, 0x03A1)	/* GREEK CAPITAL LETTER RHO */ \
   1843 	    UNI(0x53, 0x03A3)	/* GREEK CAPITAL LETTER SIGMA */ \
   1844 	    UNI(0x54, 0x03A4)	/* GREEK CAPITAL LETTER TAU */ \
   1845 	    UNI(0x55, 0x03A5)	/* GREEK CAPITAL LETTER UPSILON */ \
   1846 	    UNI(0x56, 0x03A6)	/* GREEK CAPITAL LETTER PHI */ \
   1847 	    UNI(0x57, 0x03A7)	/* GREEK CAPITAL LETTER CHI */ \
   1848 	    UNI(0x58, 0x03A8)	/* GREEK CAPITAL LETTER PSI */ \
   1849 	    UNI(0x59, 0x03A9)	/* GREEK CAPITAL LETTER OMEGA */ \
   1850 	    UNI(0x5A, 0x03AC)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
   1851 	    UNI(0x5B, 0x03AD)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
   1852 	    UNI(0x5C, 0x03AE)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
   1853 	    UNI(0x5D, 0x03AF)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
   1854 	    XXX(0x5E, UNDEF)	/* reserved */ \
   1855 	    UNI(0x5F, 0x03CC)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
   1856 	    UNI(0x60, 0x03CB)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
   1857 	    UNI(0x61, 0x03B1)	/* GREEK SMALL LETTER ALPHA */ \
   1858 	    UNI(0x62, 0x03B2)	/* GREEK SMALL LETTER BETA */ \
   1859 	    UNI(0x63, 0x03B3)	/* GREEK SMALL LETTER GAMMA */ \
   1860 	    UNI(0x64, 0x03B4)	/* GREEK SMALL LETTER DELTA */ \
   1861 	    UNI(0x65, 0x03B5)	/* GREEK SMALL LETTER EPSILON */ \
   1862 	    UNI(0x66, 0x03B6)	/* GREEK SMALL LETTER ZETA */ \
   1863 	    UNI(0x67, 0x03B7)	/* GREEK SMALL LETTER ETA */ \
   1864 	    UNI(0x68, 0x03B8)	/* GREEK SMALL LETTER THETA */ \
   1865 	    UNI(0x69, 0x03B9)	/* GREEK SMALL LETTER IOTA */ \
   1866 	    UNI(0x6A, 0x03BA)	/* GREEK SMALL LETTER KAPPA */ \
   1867 	    UNI(0x6B, 0x03BB)	/* GREEK SMALL LETTER LAMDA */ \
   1868 	    UNI(0x6C, 0x03BC)	/* GREEK SMALL LETTER MU */ \
   1869 	    UNI(0x6D, 0x03BD)	/* GREEK SMALL LETTER NU */ \
   1870 	    UNI(0x6E, 0x03BE)	/* GREEK SMALL LETTER XI */ \
   1871 	    UNI(0x6F, 0x03BF)	/* GREEK SMALL LETTER OMICRON */ \
   1872 	    XXX(0x70, UNDEF)	/* reserved */ \
   1873 	    UNI(0x71, 0x03C0)	/* GREEK SMALL LETTER PI */ \
   1874 	    UNI(0x72, 0x03C1)	/* GREEK SMALL LETTER RHO */ \
   1875 	    UNI(0x73, 0x03C3)	/* GREEK SMALL LETTER SIGMA */ \
   1876 	    UNI(0x74, 0x03C4)	/* GREEK SMALL LETTER TAU */ \
   1877 	    UNI(0x75, 0x03C5)	/* GREEK SMALL LETTER UPSILON */ \
   1878 	    UNI(0x76, 0x03C6)	/* GREEK SMALL LETTER PHI */ \
   1879 	    UNI(0x77, 0x03C7)	/* GREEK SMALL LETTER CHI */ \
   1880 	    UNI(0x78, 0x03C8)	/* GREEK SMALL LETTER PSI */ \
   1881 	    UNI(0x79, 0x03C9)	/* GREEK SMALL LETTER OMEGA */ \
   1882 	    UNI(0x7A, 0x03C2)	/* GREEK SMALL LETTER FINAL SIGMA */ \
   1883 	    UNI(0x7B, 0x03CD)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
   1884 	    UNI(0x7C, 0x03CE)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
   1885 	    UNI(0x7D, 0x0384)	/* GREEK TONOS */ \
   1886 	    XXX(0x7E, UNDEF)	/* reserved */ \
   1887 	} \
   1888 	end_CODEPAGE()
   1889 
   1890 #define unmap_DEC_Greek_Supp(code,dft) \
   1891 	switch (code) { \
   1892 	    MAP(0x24, 0x1B)	/* EURO SIGN */ \
   1893 	    MAP(0x26, 0x1B)	/* BROKEN BAR */ \
   1894 	    MAP(0x28, 0xA4)	/* CURRENCY SIGN */ \
   1895 	    MAP(0x2C, 0x1B)	/* reserved */ \
   1896 	    MAP(0x2D, 0x1B)	/* reserved */ \
   1897 	    MAP(0x2E, 0x1B)	/* reserved */ \
   1898 	    MAP(0x2F, 0x1B)	/* reserved */ \
   1899 	    MAP(0x34, 0x1B)	/* reserved */ \
   1900 	    MAP(0x38, 0x1B)	/* reserved */ \
   1901 	    MAP(0x3E, 0x1B)	/* reserved */ \
   1902 	    MAP(0x40, 0xD0)	/* GREEK SMALL LETTER IOTA WITH DIALYTIKA */ \
   1903 	    MAP(0x41, 0x76)	/* GREEK CAPITAL LETTER ALPHA */ \
   1904 	    MAP(0x42, 0x77)	/* GREEK CAPITAL LETTER BETA */ \
   1905 	    MAP(0x43, 0x78)	/* GREEK CAPITAL LETTER GAMMA */ \
   1906 	    MAP(0x44, 0x79)	/* GREEK CAPITAL LETTER DELTA */ \
   1907 	    MAP(0x45, 0x7A)	/* GREEK CAPITAL LETTER EPSILON */ \
   1908 	    MAP(0x46, 0x7B)	/* GREEK CAPITAL LETTER ZETA */ \
   1909 	    MAP(0x47, 0x7C)	/* GREEK CAPITAL LETTER ETA */ \
   1910 	    MAP(0x48, 0x7D)	/* GREEK CAPITAL LETTER THETA */ \
   1911 	    MAP(0x49, 0x7E)	/* GREEK CAPITAL LETTER IOTA */ \
   1912 	    MAP(0x4A, 0x7F)	/* GREEK CAPITAL LETTER KAPPA */ \
   1913 	    MAP(0x4B, 0xA2)	/* GREEK CAPITAL LETTER LAMDA */ \
   1914 	    MAP(0x4C, 0xA3)	/* GREEK CAPITAL LETTER MU */ \
   1915 	    MAP(0x4D, 0xA4)	/* GREEK CAPITAL LETTER NU */ \
   1916 	    MAP(0x4E, 0xA5)	/* GREEK CAPITAL LETTER XI */ \
   1917 	    MAP(0x4F, 0xA6)	/* GREEK CAPITAL LETTER OMICRON */ \
   1918 	    MAP(0x50, 0x1B)	/* reserved */ \
   1919 	    MAP(0x51, 0xA7)	/* GREEK CAPITAL LETTER PI */ \
   1920 	    MAP(0x52, 0xA8)	/* GREEK CAPITAL LETTER RHO */ \
   1921 	    MAP(0x53, 0xA9)	/* GREEK CAPITAL LETTER SIGMA */ \
   1922 	    MAP(0x54, 0xAA)	/* GREEK CAPITAL LETTER TAU */ \
   1923 	    MAP(0x55, 0xAB)	/* GREEK CAPITAL LETTER UPSILON */ \
   1924 	    MAP(0x56, 0xAC)	/* GREEK CAPITAL LETTER PHI */ \
   1925 	    MAP(0x57, 0xAD)	/* GREEK CAPITAL LETTER CHI */ \
   1926 	    MAP(0x58, 0xAE)	/* GREEK CAPITAL LETTER PSI */ \
   1927 	    MAP(0x59, 0xAF)	/* GREEK CAPITAL LETTER OMEGA */ \
   1928 	    MAP(0x5A, 0xB2)	/* GREEK SMALL LETTER ALPHA WITH TONOS */ \
   1929 	    MAP(0x5B, 0xB3)	/* GREEK SMALL LETTER EPSILON WITH TONOS */ \
   1930 	    MAP(0x5C, 0xB4)	/* GREEK SMALL LETTER ETA WITH TONOS */ \
   1931 	    MAP(0x5D, 0xB5)	/* GREEK SMALL LETTER IOTA WITH TONOS */ \
   1932 	    MAP(0x5E, 0x1B)	/* reserved */ \
   1933 	    MAP(0x5F, 0xD2)	/* GREEK SMALL LETTER OMICRON WITH TONOS */ \
   1934 	    MAP(0x60, 0xD1)	/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ \
   1935 	    MAP(0x61, 0xB7)	/* GREEK SMALL LETTER ALPHA */ \
   1936 	    MAP(0x62, 0xB8)	/* GREEK SMALL LETTER BETA */ \
   1937 	    MAP(0x63, 0xB9)	/* GREEK SMALL LETTER GAMMA */ \
   1938 	    MAP(0x64, 0xBA)	/* GREEK SMALL LETTER DELTA */ \
   1939 	    MAP(0x65, 0xBB)	/* GREEK SMALL LETTER EPSILON */ \
   1940 	    MAP(0x66, 0xBC)	/* GREEK SMALL LETTER ZETA */ \
   1941 	    MAP(0x67, 0xBD)	/* GREEK SMALL LETTER ETA */ \
   1942 	    MAP(0x68, 0xBE)	/* GREEK SMALL LETTER THETA */ \
   1943 	    MAP(0x69, 0xBF)	/* GREEK SMALL LETTER IOTA */ \
   1944 	    MAP(0x6A, 0xC0)	/* GREEK SMALL LETTER KAPPA */ \
   1945 	    MAP(0x6B, 0xC1)	/* GREEK SMALL LETTER LAMDA */ \
   1946 	    MAP(0x6C, 0xC2)	/* GREEK SMALL LETTER MU */ \
   1947 	    MAP(0x6D, 0xC3)	/* GREEK SMALL LETTER NU */ \
   1948 	    MAP(0x6E, 0xC4)	/* GREEK SMALL LETTER XI */ \
   1949 	    MAP(0x6F, 0xC5)	/* GREEK SMALL LETTER OMICRON */ \
   1950 	    MAP(0x70, 0x1B)	/* reserved */ \
   1951 	    MAP(0x71, 0xC6)	/* GREEK SMALL LETTER PI */ \
   1952 	    MAP(0x72, 0xC7)	/* GREEK SMALL LETTER RHO */ \
   1953 	    MAP(0x73, 0xC9)	/* GREEK SMALL LETTER SIGMA */ \
   1954 	    MAP(0x74, 0xCA)	/* GREEK SMALL LETTER TAU */ \
   1955 	    MAP(0x75, 0xCB)	/* GREEK SMALL LETTER UPSILON */ \
   1956 	    MAP(0x76, 0xCC)	/* GREEK SMALL LETTER PHI */ \
   1957 	    MAP(0x77, 0xCD)	/* GREEK SMALL LETTER CHI */ \
   1958 	    MAP(0x78, 0xCE)	/* GREEK SMALL LETTER PSI */ \
   1959 	    MAP(0x79, 0xCF)	/* GREEK SMALL LETTER OMEGA */ \
   1960 	    MAP(0x7A, 0xC8)	/* GREEK SMALL LETTER FINAL SIGMA */ \
   1961 	    MAP(0x7B, 0xD3)	/* GREEK SMALL LETTER UPSILON WITH TONOS */ \
   1962 	    MAP(0x7C, 0xD4)	/* GREEK SMALL LETTER OMEGA WITH TONOS */ \
   1963 	    MAP(0x7D, 0x96)	/* GREEK TONOS */ \
   1964 	    MAP(0x7E, 0x1B)	/* reserved */ \
   1965 	    default: dft; break; \
   1966 	}
   1967 
   1968 /*
   1969  * figure A-22 "DEC Hebrew Supplemental Character Set"
   1970  */
   1971 #define map_DEC_Hebrew_Supp(code) \
   1972 	begin_CODEPAGE(94) \
   1973 	switch (code) { \
   1974 	    UNI(0x21, 0x00A1)	/* INVERTED EXCLAMATION MARK */ \
   1975 	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
   1976 	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
   1977 	    XXX(0x24, UNDEF)	/* CURRENCY SIGN */ \
   1978 	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
   1979 	    XXX(0x26, UNDEF)	/* BROKEN BAR */ \
   1980 	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
   1981 	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
   1982 	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
   1983 	    UNI(0x2A, 0x00D7)	/* MULTIPLICATION SIGN */ \
   1984 	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   1985 	    XXX(0x2C, UNDEF)	/* NOT SIGN */ \
   1986 	    XXX(0x2D, UNDEF)	/* SOFT HYPHEN */ \
   1987 	    XXX(0x2E, UNDEF)	/* REGISTERED SIGN */ \
   1988 	    XXX(0x2F, UNDEF)	/* MACRON */ \
   1989 	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
   1990 	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
   1991 	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
   1992 	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
   1993 	    XXX(0x34, UNDEF)	/* ACUTE ACCENT */ \
   1994 	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
   1995 	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
   1996 	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
   1997 	    XXX(0x38, UNDEF)	/* CEDILLA */ \
   1998 	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
   1999 	    UNI(0x3A, 0x00F7)	/* DIVISION SIGN */ \
   2000 	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   2001 	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
   2002 	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
   2003 	    XXX(0x3E, UNDEF)	/* VULGAR FRACTION THREE QUARTERS */ \
   2004 	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
   2005 	    XXX(0x40, UNDEF)	/* reserved */ \
   2006 	    XXX(0x41, UNDEF)	/* reserved */ \
   2007 	    XXX(0x42, UNDEF)	/* reserved */ \
   2008 	    XXX(0x43, UNDEF)	/* reserved */ \
   2009 	    XXX(0x44, UNDEF)	/* reserved */ \
   2010 	    XXX(0x45, UNDEF)	/* reserved */ \
   2011 	    XXX(0x46, UNDEF)	/* reserved */ \
   2012 	    XXX(0x47, UNDEF)	/* reserved */ \
   2013 	    XXX(0x48, UNDEF)	/* reserved */ \
   2014 	    XXX(0x49, UNDEF)	/* reserved */ \
   2015 	    XXX(0x4A, UNDEF)	/* reserved */ \
   2016 	    XXX(0x4B, UNDEF)	/* reserved */ \
   2017 	    XXX(0x4C, UNDEF)	/* reserved */ \
   2018 	    XXX(0x4D, UNDEF)	/* reserved */ \
   2019 	    XXX(0x4E, UNDEF)	/* reserved */ \
   2020 	    XXX(0x4F, UNDEF)	/* reserved */ \
   2021 	    XXX(0x50, UNDEF)	/* reserved */ \
   2022 	    XXX(0x51, UNDEF)	/* reserved */ \
   2023 	    XXX(0x52, UNDEF)	/* reserved */ \
   2024 	    XXX(0x53, UNDEF)	/* reserved */ \
   2025 	    XXX(0x54, UNDEF)	/* reserved */ \
   2026 	    XXX(0x55, UNDEF)	/* reserved */ \
   2027 	    XXX(0x56, UNDEF)	/* reserved */ \
   2028 	    XXX(0x57, UNDEF)	/* reserved */ \
   2029 	    XXX(0x58, UNDEF)	/* reserved */ \
   2030 	    XXX(0x59, UNDEF)	/* reserved */ \
   2031 	    XXX(0x5A, UNDEF)	/* reserved */ \
   2032 	    XXX(0x5B, UNDEF)	/* reserved */ \
   2033 	    XXX(0x5C, UNDEF)	/* reserved */ \
   2034 	    XXX(0x5D, UNDEF)	/* reserved */ \
   2035 	    XXX(0x5E, UNDEF)	/* reserved */ \
   2036 	    XXX(0x5F, UNDEF)	/* reserved */ \
   2037 	    UNI(0x60, 0x05D0)	/* HEBREW LETTER ALEF */ \
   2038 	    UNI(0x61, 0x05D1)	/* HEBREW LETTER BET */ \
   2039 	    UNI(0x62, 0x05D2)	/* HEBREW LETTER GIMEL */ \
   2040 	    UNI(0x63, 0x05D3)	/* HEBREW LETTER DALET */ \
   2041 	    UNI(0x64, 0x05D4)	/* HEBREW LETTER HE */ \
   2042 	    UNI(0x65, 0x05D5)	/* HEBREW LETTER VAV */ \
   2043 	    UNI(0x66, 0x05D6)	/* HEBREW LETTER ZAYIN */ \
   2044 	    UNI(0x67, 0x05D7)	/* HEBREW LETTER HET */ \
   2045 	    UNI(0x68, 0x05D8)	/* HEBREW LETTER TET */ \
   2046 	    UNI(0x69, 0x05D9)	/* HEBREW LETTER YOD */ \
   2047 	    UNI(0x6A, 0x05DA)	/* HEBREW LETTER FINAL KAF */ \
   2048 	    UNI(0x6B, 0x05DB)	/* HEBREW LETTER KAF */ \
   2049 	    UNI(0x6C, 0x05DC)	/* HEBREW LETTER LAMED */ \
   2050 	    UNI(0x6D, 0x05DD)	/* HEBREW LETTER FINAL MEM */ \
   2051 	    UNI(0x6E, 0x05DE)	/* HEBREW LETTER MEM */ \
   2052 	    UNI(0x6F, 0x05DF)	/* HEBREW LETTER FINAL NUN */ \
   2053 	    UNI(0x70, 0x05E0)	/* HEBREW LETTER NUN */ \
   2054 	    UNI(0x71, 0x05E1)	/* HEBREW LETTER SAMEKH */ \
   2055 	    UNI(0x72, 0x05E2)	/* HEBREW LETTER AYIN */ \
   2056 	    UNI(0x73, 0x05E3)	/* HEBREW LETTER FINAL PE */ \
   2057 	    UNI(0x74, 0x05E4)	/* HEBREW LETTER PE */ \
   2058 	    UNI(0x75, 0x05E5)	/* HEBREW LETTER FINAL TSADI */ \
   2059 	    UNI(0x76, 0x05E6)	/* HEBREW LETTER TSADI */ \
   2060 	    UNI(0x77, 0x05E7)	/* HEBREW LETTER QOF */ \
   2061 	    UNI(0x78, 0x05E8)	/* HEBREW LETTER RESH */ \
   2062 	    UNI(0x79, 0x05E9)	/* HEBREW LETTER SHIN */ \
   2063 	    UNI(0x7A, 0x05EA)	/* HEBREW LETTER TAV */ \
   2064 	    XXX(0x7B, UNDEF)	/* reserved */ \
   2065 	    XXX(0x7C, UNDEF)	/* reserved */ \
   2066 	    XXX(0x7D, UNDEF)	/* reserved */ \
   2067 	    XXX(0x7E, UNDEF)	/* reserved */ \
   2068 	} \
   2069 	end_CODEPAGE()
   2070 
   2071 #define unmap_DEC_Hebrew_Supp(code,dft) \
   2072 	switch (code) { \
   2073 	    MAP(0x24, 0x1B)	/* CURRENCY SIGN */ \
   2074 	    MAP(0x26, 0x1B)	/* BROKEN BAR */ \
   2075 	    MAP(0x28, 0xA4)	/* DIAERESIS */ \
   2076 	    MAP(0x2C, 0x1B)	/* NOT SIGN */ \
   2077 	    MAP(0x2D, 0x1B)	/* SOFT HYPHEN */ \
   2078 	    MAP(0x2E, 0x1B)	/* REGISTERED SIGN */ \
   2079 	    MAP(0x2F, 0x1B)	/* MACRON */ \
   2080 	    MAP(0x34, 0x1B)	/* ACUTE ACCENT */ \
   2081 	    MAP(0x38, 0x1B)	/* CEDILLA */ \
   2082 	    MAP(0x3E, 0x1B)	/* VULGAR FRACTION THREE QUARTERS */ \
   2083 	    MAP(0x40, 0x1B)	/* reserved */ \
   2084 	    MAP(0x41, 0x1B)	/* reserved */ \
   2085 	    MAP(0x42, 0x1B)	/* reserved */ \
   2086 	    MAP(0x43, 0x1B)	/* reserved */ \
   2087 	    MAP(0x44, 0x1B)	/* reserved */ \
   2088 	    MAP(0x45, 0x1B)	/* reserved */ \
   2089 	    MAP(0x46, 0x1B)	/* reserved */ \
   2090 	    MAP(0x47, 0x1B)	/* reserved */ \
   2091 	    MAP(0x48, 0x1B)	/* reserved */ \
   2092 	    MAP(0x49, 0x1B)	/* reserved */ \
   2093 	    MAP(0x4A, 0x1B)	/* reserved */ \
   2094 	    MAP(0x4B, 0x1B)	/* reserved */ \
   2095 	    MAP(0x4C, 0x1B)	/* reserved */ \
   2096 	    MAP(0x4D, 0x1B)	/* reserved */ \
   2097 	    MAP(0x4E, 0x1B)	/* reserved */ \
   2098 	    MAP(0x4F, 0x1B)	/* reserved */ \
   2099 	    MAP(0x50, 0x1B)	/* reserved */ \
   2100 	    MAP(0x51, 0x1B)	/* reserved */ \
   2101 	    MAP(0x52, 0x1B)	/* reserved */ \
   2102 	    MAP(0x53, 0x1B)	/* reserved */ \
   2103 	    MAP(0x54, 0x1B)	/* reserved */ \
   2104 	    MAP(0x55, 0x1B)	/* reserved */ \
   2105 	    MAP(0x56, 0x1B)	/* reserved */ \
   2106 	    MAP(0x57, 0x1B)	/* reserved */ \
   2107 	    MAP(0x58, 0x1B)	/* reserved */ \
   2108 	    MAP(0x59, 0x1B)	/* reserved */ \
   2109 	    MAP(0x5A, 0x1B)	/* reserved */ \
   2110 	    MAP(0x5B, 0x1B)	/* reserved */ \
   2111 	    MAP(0x5C, 0x1B)	/* reserved */ \
   2112 	    MAP(0x5D, 0x1B)	/* reserved */ \
   2113 	    MAP(0x5E, 0x1B)	/* reserved */ \
   2114 	    MAP(0x5F, 0x1B)	/* reserved */ \
   2115 	    MAP(0x60, 0x53)	/* HEBREW LETTER ALEF */ \
   2116 	    MAP(0x61, 0x54)	/* HEBREW LETTER BET */ \
   2117 	    MAP(0x62, 0x55)	/* HEBREW LETTER GIMEL */ \
   2118 	    MAP(0x63, 0x56)	/* HEBREW LETTER DALET */ \
   2119 	    MAP(0x64, 0x57)	/* HEBREW LETTER HE */ \
   2120 	    MAP(0x65, 0x58)	/* HEBREW LETTER VAV */ \
   2121 	    MAP(0x66, 0x59)	/* HEBREW LETTER ZAYIN */ \
   2122 	    MAP(0x67, 0x5A)	/* HEBREW LETTER HET */ \
   2123 	    MAP(0x68, 0x5B)	/* HEBREW LETTER TET */ \
   2124 	    MAP(0x69, 0x5C)	/* HEBREW LETTER YOD */ \
   2125 	    MAP(0x6A, 0x5D)	/* HEBREW LETTER FINAL KAF */ \
   2126 	    MAP(0x6B, 0x5E)	/* HEBREW LETTER KAF */ \
   2127 	    MAP(0x6C, 0x5F)	/* HEBREW LETTER LAMED */ \
   2128 	    MAP(0x6D, 0x60)	/* HEBREW LETTER FINAL MEM */ \
   2129 	    MAP(0x6E, 0x61)	/* HEBREW LETTER MEM */ \
   2130 	    MAP(0x6F, 0x62)	/* HEBREW LETTER FINAL NUN */ \
   2131 	    MAP(0x70, 0x63)	/* HEBREW LETTER NUN */ \
   2132 	    MAP(0x71, 0x64)	/* HEBREW LETTER SAMEKH */ \
   2133 	    MAP(0x72, 0x65)	/* HEBREW LETTER AYIN */ \
   2134 	    MAP(0x73, 0x66)	/* HEBREW LETTER FINAL PE */ \
   2135 	    MAP(0x74, 0x67)	/* HEBREW LETTER PE */ \
   2136 	    MAP(0x75, 0x68)	/* HEBREW LETTER FINAL TSADI */ \
   2137 	    MAP(0x76, 0x69)	/* HEBREW LETTER TSADI */ \
   2138 	    MAP(0x77, 0x6A)	/* HEBREW LETTER QOF */ \
   2139 	    MAP(0x78, 0x6B)	/* HEBREW LETTER RESH */ \
   2140 	    MAP(0x79, 0x6C)	/* HEBREW LETTER SHIN */ \
   2141 	    MAP(0x7A, 0x6D)	/* HEBREW LETTER TAV */ \
   2142 	    MAP(0x7B, 0x1B)	/* reserved */ \
   2143 	    MAP(0x7C, 0x1B)	/* reserved */ \
   2144 	    MAP(0x7D, 0x1B)	/* reserved */ \
   2145 	    MAP(0x7E, 0x1B)	/* reserved */ \
   2146 	    default: dft; break; \
   2147 	}
   2148 
   2149 /*
   2150  * figure A-27 "DEC 8-Bit Turkish Supplemental Character Set"
   2151  */
   2152 #define map_DEC_Turkish_Supp(code) \
   2153 	begin_CODEPAGE(94) \
   2154 	switch (code) { \
   2155 	    UNI(0x21, 0x00A1)	/* INVERTED EXCLAMATION MARK */ \
   2156 	    UNI(0x22, 0x00A2)	/* CENT SIGN */ \
   2157 	    UNI(0x23, 0x00A3)	/* POUND SIGN */ \
   2158 	    XXX(0x24, UNDEF)	/* reserved */ \
   2159 	    UNI(0x25, 0x00A5)	/* YEN SIGN */ \
   2160 	    XXX(0x26, UNDEF)	/* reserved */ \
   2161 	    UNI(0x27, 0x00A7)	/* SECTION SIGN */ \
   2162 	    UNI(0x28, 0x00A8)	/* DIAERESIS */ \
   2163 	    UNI(0x29, 0x00A9)	/* COPYRIGHT SIGN */ \
   2164 	    UNI(0x2A, 0x00AA)	/* FEMININE ORDINAL INDICATOR */ \
   2165 	    UNI(0x2B, 0x00AB)	/* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   2166 	    XXX(0x2C, UNDEF)	/* reserved */ \
   2167 	    XXX(0x2D, UNDEF)	/* reserved */ \
   2168 	    UNI(0x2E, 0x0130)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
   2169 	    XXX(0x2F, UNDEF)	/* reserved */ \
   2170 	    UNI(0x30, 0x00B0)	/* DEGREE SIGN */ \
   2171 	    UNI(0x31, 0x00B1)	/* PLUS-MINUS SIGN */ \
   2172 	    UNI(0x32, 0x00B2)	/* SUPERSCRIPT TWO */ \
   2173 	    UNI(0x33, 0x00B3)	/* SUPERSCRIPT THREE */ \
   2174 	    XXX(0x34, UNDEF)	/* reserved */ \
   2175 	    UNI(0x35, 0x00B5)	/* MICRO SIGN */ \
   2176 	    UNI(0x36, 0x00B6)	/* PILCROW SIGN */ \
   2177 	    UNI(0x37, 0x00B7)	/* MIDDLE DOT */ \
   2178 	    XXX(0x38, UNDEF)	/* reserved */ \
   2179 	    UNI(0x39, 0x00B9)	/* SUPERSCRIPT ONE */ \
   2180 	    UNI(0x3A, 0x00BA)	/* MASCULINE ORDINAL INDICATOR */ \
   2181 	    UNI(0x3B, 0x00BB)	/* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ \
   2182 	    UNI(0x3C, 0x00BC)	/* VULGAR FRACTION ONE QUARTER */ \
   2183 	    UNI(0x3D, 0x00BD)	/* VULGAR FRACTION ONE HALF */ \
   2184 	    UNI(0x3E, 0x0131)	/* LATIN SMALL LETTER DOTLESS I */ \
   2185 	    UNI(0x3F, 0x00BF)	/* INVERTED QUESTION MARK */ \
   2186 	    UNI(0x40, 0x00C0)	/* LATIN CAPITAL LETTER A WITH GRAVE */ \
   2187 	    UNI(0x41, 0x00C1)	/* LATIN CAPITAL LETTER A WITH ACUTE */ \
   2188 	    UNI(0x42, 0x00C2)	/* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ \
   2189 	    UNI(0x43, 0x00C3)	/* LATIN CAPITAL LETTER A WITH TILDE */ \
   2190 	    UNI(0x44, 0x00C4)	/* LATIN CAPITAL LETTER A WITH DIAERESIS */ \
   2191 	    UNI(0x45, 0x00C5)	/* LATIN CAPITAL LETTER A WITH RING ABOVE */ \
   2192 	    UNI(0x46, 0x00C6)	/* LATIN CAPITAL LETTER AE */ \
   2193 	    UNI(0x47, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
   2194 	    UNI(0x48, 0x00C8)	/* LATIN CAPITAL LETTER E WITH GRAVE */ \
   2195 	    UNI(0x49, 0x00C9)	/* LATIN CAPITAL LETTER E WITH ACUTE */ \
   2196 	    UNI(0x4A, 0x00CA)	/* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ \
   2197 	    UNI(0x4B, 0x00CB)	/* LATIN CAPITAL LETTER E WITH DIAERESIS */ \
   2198 	    UNI(0x4C, 0x00CC)	/* LATIN CAPITAL LETTER I WITH GRAVE */ \
   2199 	    UNI(0x4D, 0x00CD)	/* LATIN CAPITAL LETTER I WITH ACUTE */ \
   2200 	    UNI(0x4E, 0x00CE)	/* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ \
   2201 	    UNI(0x4F, 0x00CF)	/* LATIN CAPITAL LETTER I WITH DIAERESIS */ \
   2202 	    UNI(0x50, 0x011E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
   2203 	    UNI(0x51, 0x00D1)	/* LATIN CAPITAL LETTER N WITH TILDE */ \
   2204 	    UNI(0x52, 0x00D2)	/* LATIN CAPITAL LETTER O WITH GRAVE */ \
   2205 	    UNI(0x53, 0x00D3)	/* LATIN CAPITAL LETTER O WITH ACUTE */ \
   2206 	    UNI(0x54, 0x00D4)	/* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ \
   2207 	    UNI(0x55, 0x00D5)	/* LATIN CAPITAL LETTER O WITH TILDE */ \
   2208 	    UNI(0x56, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
   2209 	    UNI(0x57, 0x0152)	/* LATIN CAPITAL LIGATURE OE */ \
   2210 	    UNI(0x58, 0x00D8)	/* LATIN CAPITAL LETTER O WITH STROKE */ \
   2211 	    UNI(0x59, 0x00D9)	/* LATIN CAPITAL LETTER U WITH GRAVE */ \
   2212 	    UNI(0x5A, 0x00DA)	/* LATIN CAPITAL LETTER U WITH ACUTE */ \
   2213 	    UNI(0x5B, 0x00DB)	/* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ \
   2214 	    UNI(0x5C, 0x00DC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
   2215 	    UNI(0x5D, 0x0178)	/* LATIN CAPITAL LETTER Y WITH DIAERESIS */ \
   2216 	    UNI(0x5E, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
   2217 	    UNI(0x5F, 0x00DF)	/* LATIN SMALL LETTER SHARP S */ \
   2218 	    UNI(0x60, 0x00E0)	/* LATIN SMALL LETTER A WITH GRAVE */ \
   2219 	    UNI(0x61, 0x00E1)	/* LATIN SMALL LETTER A WITH ACUTE */ \
   2220 	    UNI(0x62, 0x00E2)	/* LATIN SMALL LETTER A WITH CIRCUMFLEX */ \
   2221 	    UNI(0x63, 0x00E3)	/* LATIN SMALL LETTER A WITH TILDE */ \
   2222 	    UNI(0x64, 0x00E4)	/* LATIN SMALL LETTER A WITH DIAERESIS */ \
   2223 	    UNI(0x65, 0x00E5)	/* LATIN SMALL LETTER A WITH RING ABOVE */ \
   2224 	    UNI(0x66, 0x00E6)	/* LATIN SMALL LETTER AE */ \
   2225 	    UNI(0x67, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
   2226 	    UNI(0x68, 0x00E8)	/* LATIN SMALL LETTER E WITH GRAVE */ \
   2227 	    UNI(0x69, 0x00E9)	/* LATIN SMALL LETTER E WITH ACUTE */ \
   2228 	    UNI(0x6A, 0x00EA)	/* LATIN SMALL LETTER E WITH CIRCUMFLEX */ \
   2229 	    UNI(0x6B, 0x00EB)	/* LATIN SMALL LETTER E WITH DIAERESIS */ \
   2230 	    UNI(0x6C, 0x00EC)	/* LATIN SMALL LETTER I WITH GRAVE */ \
   2231 	    UNI(0x6D, 0x00ED)	/* LATIN SMALL LETTER I WITH ACUTE */ \
   2232 	    UNI(0x6E, 0x00EE)	/* LATIN SMALL LETTER I WITH CIRCUMFLEX */ \
   2233 	    UNI(0x6F, 0x00EF)	/* LATIN SMALL LETTER I WITH DIAERESIS */ \
   2234 	    UNI(0x70, 0x011F)	/* LATIN SMALL LETTER G WITH BREVE */ \
   2235 	    UNI(0x71, 0x00F1)	/* LATIN SMALL LETTER N WITH TILDE */ \
   2236 	    UNI(0x72, 0x00F2)	/* LATIN SMALL LETTER O WITH GRAVE */ \
   2237 	    UNI(0x73, 0x00F3)	/* LATIN SMALL LETTER O WITH ACUTE */ \
   2238 	    UNI(0x74, 0x00F4)	/* LATIN SMALL LETTER O WITH CIRCUMFLEX */ \
   2239 	    UNI(0x75, 0x00F5)	/* LATIN SMALL LETTER O WITH TILDE */ \
   2240 	    UNI(0x76, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
   2241 	    UNI(0x77, 0x0153)	/* LATIN SMALL LIGATURE OE */ \
   2242 	    UNI(0x78, 0x00F8)	/* LATIN SMALL LETTER O WITH STROKE */ \
   2243 	    UNI(0x79, 0x00F9)	/* LATIN SMALL LETTER U WITH GRAVE */ \
   2244 	    UNI(0x7A, 0x00FA)	/* LATIN SMALL LETTER U WITH ACUTE */ \
   2245 	    UNI(0x7B, 0x00FB)	/* LATIN SMALL LETTER U WITH CIRCUMFLEX */ \
   2246 	    UNI(0x7C, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
   2247 	    UNI(0x7D, 0x00FF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
   2248 	    UNI(0x7E, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
   2249 	} \
   2250 	end_CODEPAGE()
   2251 
   2252 #define unmap_DEC_Turkish_Supp(code,dft) \
   2253 	switch (code) { \
   2254 	    MAP(0x24, 0x1B)	/* reserved */ \
   2255 	    MAP(0x26, 0x1B)	/* reserved */ \
   2256 	    MAP(0x28, 0xA4)	/* DIAERESIS */ \
   2257 	    MAP(0x2C, 0x1B)	/* reserved */ \
   2258 	    MAP(0x2D, 0x1B)	/* reserved */ \
   2259 	    MAP(0x2E, 0x4F)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
   2260 	    MAP(0x2F, 0x1B)	/* reserved */ \
   2261 	    MAP(0x34, 0x1B)	/* reserved */ \
   2262 	    MAP(0x38, 0x1B)	/* reserved */ \
   2263 	    MAP(0x3E, 0x51)	/* LATIN SMALL LETTER DOTLESS I */ \
   2264 	    MAP(0x50, 0x4E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
   2265 	    MAP(0x57, 0x97)	/* LATIN CAPITAL LIGATURE OE */ \
   2266 	    MAP(0x5D, 0x98)	/* LATIN CAPITAL LETTER Y WITH DIAERESIS */ \
   2267 	    MAP(0x5E, 0x9F)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
   2268 	    MAP(0x70, 0x50)	/* LATIN SMALL LETTER G WITH BREVE */ \
   2269 	    MAP(0x77, 0x99)	/* LATIN SMALL LIGATURE OE */ \
   2270 	    MAP(0x7D, 0xFF)	/* LATIN SMALL LETTER Y WITH DIAERESIS */ \
   2271 	    MAP(0x7E, 0x2A)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
   2272 	    default: dft; break; \
   2273 	}
   2274 
   2275 /*
   2276  * mentioned, but not documented in VT510 manual, etc., this uses
   2277  * the ELOT927 table from Kermit 95:
   2278  */
   2279 #define map_NRCS_Greek(code) \
   2280 	switch (code) { \
   2281 	    UNI(0x61, 0x0391)	/* CAPITAL GREEK LETTER ALPHA */ \
   2282 	    UNI(0x62, 0x0392)	/* CAPITAL GREEK LETTER BETA */ \
   2283 	    UNI(0x63, 0x0393)	/* CAPITAL GREEK LETTER GAMMA */ \
   2284 	    UNI(0x64, 0x0394)	/* CAPITAL GREEK LETTER DELTA */ \
   2285 	    UNI(0x65, 0x0395)	/* CAPITAL GREEK LETTER EPSILON */ \
   2286 	    UNI(0x66, 0x0396)	/* CAPITAL GREEK LETTER ZETA */ \
   2287 	    UNI(0x67, 0x0397)	/* CAPITAL GREEK LETTER ETA */ \
   2288 	    UNI(0x68, 0x0398)	/* CAPITAL GREEK LETTER THETA */ \
   2289 	    UNI(0x69, 0x0399)	/* CAPITAL GREEK LETTER IOTA */ \
   2290 	    UNI(0x6a, 0x039A)	/* CAPITAL GREEK LETTER KAPPA */ \
   2291 	    UNI(0x6b, 0x039B)	/* CAPITAL GREEK LETTER LAMDA */ \
   2292 	    UNI(0x6c, 0x039C)	/* CAPITAL GREEK LETTER MU */ \
   2293 	    UNI(0x6d, 0x039D)	/* CAPITAL GREEK LETTER NU */ \
   2294 	    UNI(0x6e, 0x03A7)	/* CAPITAL GREEK LETTER KSI (CHI) */ \
   2295 	    UNI(0x6f, 0x039F)	/* CAPITAL GREEK LETTER OMICRON */ \
   2296 	    UNI(0x70, 0x03A0)	/* CAPITAL GREEK LETTER PI */ \
   2297 	    UNI(0x71, 0x03A1)	/* CAPITAL GREEK LETTER RHO */ \
   2298 	    UNI(0x72, 0x03A3)	/* CAPITAL GREEK LETTER SIGMA */ \
   2299 	    UNI(0x73, 0x03A4)	/* CAPITAL GREEK LETTER TAU */ \
   2300 	    UNI(0x74, 0x03A5)	/* CAPITAL GREEK LETTER UPSILON */ \
   2301 	    UNI(0x75, 0x03A6)	/* CAPITAL GREEK LETTER FI (PHI) */ \
   2302 	    UNI(0x76, 0x039E)	/* CAPITAL GREEK LETTER XI */ \
   2303 	    UNI(0x77, 0x03A8)	/* CAPITAL GREEK LETTER PSI */ \
   2304 	    UNI(0x78, 0x03A9)	/* CAPITAL GREEK LETTER OMEGA */ \
   2305 	    XXX(0x79, UNDEF)	/* unused */ \
   2306 	    XXX(0x7a, UNDEF)	/* unused */ \
   2307 	}
   2308 
   2309 #define unmap_NRCS_Greek(code,dft) \
   2310 	switch (code) { \
   2311 	    MAP(0x79,             0x1B) /* unused */ \
   2312 	    MAP(0x7a,             0x1B) /* unused */ \
   2313 	    default: dft; break; \
   2314 	}
   2315 
   2316 /*
   2317  * figure A-21 "DEC 7-Bit Hebrew Character Set"
   2318  */
   2319 #define map_NRCS_Hebrew(code) \
   2320 	switch (code) { \
   2321 	    UNI(0x60, 0x05D0)	/* HEBREW LETTER ALEF */ \
   2322 	    UNI(0x61, 0x05D1)	/* HEBREW LETTER BET */ \
   2323 	    UNI(0x62, 0x05D2)	/* HEBREW LETTER GIMEL */ \
   2324 	    UNI(0x63, 0x05D3)	/* HEBREW LETTER DALET */ \
   2325 	    UNI(0x64, 0x05D4)	/* HEBREW LETTER HE */ \
   2326 	    UNI(0x65, 0x05D5)	/* HEBREW LETTER VAV */ \
   2327 	    UNI(0x66, 0x05D6)	/* HEBREW LETTER ZAYIN */ \
   2328 	    UNI(0x67, 0x05D7)	/* HEBREW LETTER HET */ \
   2329 	    UNI(0x68, 0x05D8)	/* HEBREW LETTER TET */ \
   2330 	    UNI(0x69, 0x05D9)	/* HEBREW LETTER YOD */ \
   2331 	    UNI(0x6a, 0x05DA)	/* HEBREW LETTER FINAL KAF */ \
   2332 	    UNI(0x6b, 0x05DB)	/* HEBREW LETTER KAF */ \
   2333 	    UNI(0x6c, 0x05DC)	/* HEBREW LETTER LAMED */ \
   2334 	    UNI(0x6d, 0x05DD)	/* HEBREW LETTER FINAL MEM */ \
   2335 	    UNI(0x6e, 0x05DE)	/* HEBREW LETTER MEM */ \
   2336 	    UNI(0x6f, 0x05DF)	/* HEBREW LETTER FINAL NUN */ \
   2337 	    UNI(0x70, 0x05E0)	/* HEBREW LETTER NUN */ \
   2338 	    UNI(0x71, 0x05E1)	/* HEBREW LETTER SAMEKH */ \
   2339 	    UNI(0x72, 0x05E2)	/* HEBREW LETTER AYIN */ \
   2340 	    UNI(0x73, 0x05E3)	/* HEBREW LETTER FINAL PE */ \
   2341 	    UNI(0x74, 0x05E4)	/* HEBREW LETTER PE */ \
   2342 	    UNI(0x75, 0x05E5)	/* HEBREW LETTER FINAL TSADI */ \
   2343 	    UNI(0x76, 0x05E6)	/* HEBREW LETTER TSADI */ \
   2344 	    UNI(0x77, 0x05E7)	/* HEBREW LETTER QOF */ \
   2345 	    UNI(0x78, 0x05E8)	/* HEBREW LETTER RESH */ \
   2346 	    UNI(0x79, 0x05E9)	/* HEBREW LETTER SHIN */ \
   2347 	    UNI(0x7a, 0x05EA)	/* HEBREW LETTER TAV */ \
   2348 	}
   2349 
   2350 #define unmap_NRCS_Hebrew(code,dft) /* nothing */
   2351 
   2352 /*
   2353  * VT520/VT525 manual p 4-35 explains "SCS" as Serbo-Croatian.  The remaining
   2354  * "S" may be Slovene.  With that clue, choose ISO-IR-141, which provides a
   2355  * chart with names of suitable replacement characters.
   2356  */
   2357 #define map_NRCS_Serbo_Croatian(code) \
   2358 	switch (code) { \
   2359 	    UNI(0x40, 0x017D)		/* LATIN CAPITAL LETTER Z WITH CARON */ \
   2360 	    UNI(0x5B, 0x0160)		/* LATIN CAPITAL LETTER S WITH CARON */ \
   2361 	    UNI(0x5C, 0x0110)		/* LATIN CAPITAL LETTER D WITH STROKE */ \
   2362 	    UNI(0x5D, 0x0106)		/* LATIN CAPITAL LETTER C WITH ACUTE */ \
   2363 	    UNI(0x5E, 0x010C)		/* LATIN CAPITAL LETTER C WITH CARON */ \
   2364 	    UNI(0x60, 0x017E)		/* LATIN SMALL LETTER Z WITH CARON */ \
   2365 	    UNI(0x7B, 0x0161)		/* LATIN SMALL LETTER S WITH CARON */ \
   2366 	    UNI(0x7C, 0x0111)		/* LATIN SMALL LETTER D WITH STROKE */ \
   2367 	    UNI(0x7D, 0x0107)		/* LATIN SMALL LETTER C WITH ACUTE */ \
   2368 	    UNI(0x7E, 0x010D)		/* LATIN SMALL LETTER C WITH CARON */ \
   2369 	}
   2370 
   2371 #define unmap_NRCS_Serbo_Croatian(code,dft) /* nothing */
   2372 
   2373 /*
   2374  * VT520/VT525 manual p 7-2 explains "Russian" as KOI-7, though the dialect
   2375  * is unknown.  Choose the one Kermit used.
   2376  */
   2377 #define map_NRCS_Russian(code) \
   2378 	switch (code) { \
   2379 	    UNI(0x60, 0x042E)		/* CYRILLIC CAPITAL LETTER YU */ \
   2380 	    UNI(0x61, 0x0410)		/* CYRILLIC CAPITAL LETTER A */ \
   2381 	    UNI(0x62, 0x0411)		/* CYRILLIC CAPITAL LETTER BE */ \
   2382 	    UNI(0x63, 0x0426)		/* CYRILLIC CAPITAL LETTER TSE */ \
   2383 	    UNI(0x64, 0x0414)		/* CYRILLIC CAPITAL LETTER DE */ \
   2384 	    UNI(0x65, 0x0415)		/* CYRILLIC CAPITAL LETTER IE */ \
   2385 	    UNI(0x66, 0x0424)		/* CYRILLIC CAPITAL LETTER EF */ \
   2386 	    UNI(0x67, 0x0413)		/* CYRILLIC CAPITAL LETTER GHE */ \
   2387 	    UNI(0x68, 0x0425)		/* CYRILLIC CAPITAL LETTER HA */ \
   2388 	    UNI(0x69, 0x0418)		/* CYRILLIC CAPITAL LETTER I */ \
   2389 	    UNI(0x6A, 0x0419)		/* CYRILLIC CAPITAL LETTER SHORT I */ \
   2390 	    UNI(0x6B, 0x041A)		/* CYRILLIC CAPITAL LETTER KA */ \
   2391 	    UNI(0x6C, 0x041B)		/* CYRILLIC CAPITAL LETTER EL */ \
   2392 	    UNI(0x6D, 0x041C)		/* CYRILLIC CAPITAL LETTER EM */ \
   2393 	    UNI(0x6E, 0x041D)		/* CYRILLIC CAPITAL LETTER EN */ \
   2394 	    UNI(0x6F, 0x041E)		/* CYRILLIC CAPITAL LETTER O */ \
   2395 	    UNI(0x70, 0x041F)		/* CYRILLIC CAPITAL LETTER PE */ \
   2396 	    UNI(0x71, 0x042F)		/* CYRILLIC CAPITAL LETTER YA */ \
   2397 	    UNI(0x72, 0x0420)		/* CYRILLIC CAPITAL LETTER ER */ \
   2398 	    UNI(0x73, 0x0421)		/* CYRILLIC CAPITAL LETTER ES */ \
   2399 	    UNI(0x74, 0x0422)		/* CYRILLIC CAPITAL LETTER TE */ \
   2400 	    UNI(0x75, 0x0423)		/* CYRILLIC CAPITAL LETTER U */ \
   2401 	    UNI(0x76, 0x0416)		/* CYRILLIC CAPITAL LETTER ZHE */ \
   2402 	    UNI(0x77, 0x0412)		/* CYRILLIC CAPITAL LETTER VE */ \
   2403 	    UNI(0x78, 0x042C)		/* CYRILLIC CAPITAL LETTER SOFT SIGN */ \
   2404 	    UNI(0x79, 0x042B)		/* CYRILLIC CAPITAL LETTER YERU */ \
   2405 	    UNI(0x7A, 0x0417)		/* CYRILLIC CAPITAL LETTER ZE */ \
   2406 	    UNI(0x7B, 0x0428)		/* CYRILLIC CAPITAL LETTER SHA */ \
   2407 	    UNI(0x7C, 0x042D)		/* CYRILLIC CAPITAL LETTER E */ \
   2408 	    UNI(0x7D, 0x0429)		/* CYRILLIC CAPITAL LETTER SHCHA */ \
   2409 	    UNI(0x7E, 0x0427)		/* CYRILLIC CAPITAL LETTER CHE */ \
   2410 	}
   2411 
   2412 #define unmap_NRCS_Russian(code,dft) /* nothing */
   2413 
   2414 /*
   2415  * figure A-26 "DEC 7-Bit Turkish Character Set"
   2416  */
   2417 #define map_NRCS_Turkish(code) \
   2418 	switch (code) { \
   2419 	    UNI(0x26, 0x011F)	/* LATIN SMALL LETTER G WITH BREVE */ \
   2420 	    UNI(0x40, 0x0130)	/* LATIN CAPITAL LETTER I WITH DOT ABOVE */ \
   2421 	    UNI(0x5b, 0x015E)	/* LATIN CAPITAL LETTER S WITH CEDILLA */ \
   2422 	    UNI(0x5c, 0x00D6)	/* LATIN CAPITAL LETTER O WITH DIAERESIS */ \
   2423 	    UNI(0x5d, 0x00C7)	/* LATIN CAPITAL LETTER C WITH CEDILLA */ \
   2424 	    UNI(0x5e, 0x00dC)	/* LATIN CAPITAL LETTER U WITH DIAERESIS */ \
   2425 	    UNI(0x60, 0x011E)	/* LATIN CAPITAL LETTER G WITH BREVE */ \
   2426 	    UNI(0x7b, 0x015F)	/* LATIN SMALL LETTER S WITH CEDILLA */ \
   2427 	    UNI(0x7c, 0x00F6)	/* LATIN SMALL LETTER O WITH DIAERESIS */ \
   2428 	    UNI(0x7d, 0x00E7)	/* LATIN SMALL LETTER C WITH CEDILLA */ \
   2429 	    UNI(0x7e, 0x00FC)	/* LATIN SMALL LETTER U WITH DIAERESIS */ \
   2430 	}
   2431 
   2432 #define unmap_NRCS_Turkish(code,dft) /* nothing */
   2433 #else
   2434 #define map_DEC_Cyrillic(code)	/* nothing */
   2435 #define unmap_DEC_Cyrillic(code,dft) dft
   2436 #define map_DEC_Greek_Supp(code)	/* nothing */
   2437 #define unmap_DEC_Greek_Supp(code,dft) dft
   2438 #define map_DEC_Hebrew_Supp(code)	/* nothing */
   2439 #define unmap_DEC_Hebrew_Supp(code,dft) dft
   2440 #define map_DEC_Technical(code)	/* nothing */
   2441 #define unmap_DEC_Technical(code,dft) dft
   2442 #define map_DEC_Turkish_Supp(code)	/* nothing */
   2443 #define unmap_DEC_Turkish_Supp(code,dft) dft
   2444 #define map_ISO_Greek_Supp(code)	/* nothing */
   2445 #define unmap_ISO_Greek_Supp(code,dft) dft
   2446 #define map_ISO_Hebrew(code)	/* nothing */
   2447 #define unmap_ISO_Hebrew(code,dft) dft
   2448 #define map_ISO_Latin_2(code)	/* nothing */
   2449 #define unmap_ISO_Latin_2(code,dft) dft
   2450 #define map_ISO_Latin_5(code)	/* nothing */
   2451 #define unmap_ISO_Latin_5(code,dft) dft
   2452 #define map_ISO_Latin_Cyrillic(code)	/* nothing */
   2453 #define unmap_ISO_Latin_Cyrillic(code,dft) dft
   2454 #define map_JIS_Katakana(code)	/* nothing */
   2455 #define unmap_JIS_Katakana(code,dft) dft
   2456 #define map_JIS_Roman(code)	/* nothing */
   2457 #define unmap_JIS_Roman(code,dft) dft
   2458 #define map_NRCS_Greek(code)	/* nothing */
   2459 #define unmap_NRCS_Greek(code,dft) dft
   2460 #define map_NRCS_Hebrew(code)	/* nothing */
   2461 #define unmap_NRCS_Hebrew(code,dft) dft
   2462 #define map_NRCS_Russian(code)	/* nothing */
   2463 #define unmap_NRCS_Russian(code,dft) dft
   2464 #define map_NRCS_Serbo_Croatian(code)	/* nothing */
   2465 #define unmap_NRCS_Serbo_Croatian(code,dft) dft
   2466 #define map_NRCS_Turkish(code)	/* nothing */
   2467 #define unmap_NRCS_Turkish(code,dft) dft
   2468 #endif /* OPT_WIDE_CHARS */
   2469 
   2470 #endif /* included_charsets_h */
   2471