2 * Copyright (c) 2003-4 Kian Duffy <myob@users.sourceforge.net>
3 * Parts Copyright (C) 1998,99 Kazuho Okui and Takashi Murai.
5 * Distributed under the terms of the MIT License.
8 * Kian Duffy, myob@users.sourceforge.net
9 * Siarzhuk Zharski, zharik@gmx.li
13 #include <SupportDefs.h>
18 // #pragma mark UTF8 coding ground table
19 int gUTF8GroundTable
[] =
37 CASE_LF
, /* CASE_IGNORE*/
181 /* 0x80 0x81 0x82 0x83 */
186 /* 0x84 0x85 0x86 0x87 */
191 /* 0x88 0x89 0x8a 0x8b */
196 /* 0x8c 0x8d 0x8e 0x8f */
201 /* 0x90 0x91 0x92 0x93 */
206 /* 0x94 0x95 0x96 0x97 */
211 /* 0x99 0x99 0x9a 0x9b */
216 /* 0x9c 0x9d 0x9e 0x9f */
221 /* 0xa0 0xa1 0xa2 0xa3 */
226 /* 0xa4 0xa5 0xa6 0xa7 */
231 /* 0xa8 0xa9 0xaa 0xab */
236 /* 0xac 0xad 0xae 0xaf */
241 /* 0xb0 0xb1 0xb2 0xb3 */
246 /* 0xb4 0xb5 0xb6 0xb7 */
251 /* 0xb8 0xb9 0xba 0xbb */
256 /* 0xbc 0xbd 0xbe 0xbf */
261 /* 0xc0 0xc1 0xc2 0xc3 */
266 /* 0xc4 0xc5 0xc6 0xc7 */
271 /* 0xc8 0xc9 0xca 0xcb */
276 /* 0xcc 0xcd 0xce 0xcf */
281 /* 0xd0 0xd1 0xd2 0xd3 */
286 /* 0xd4 0xd5 0xd6 0xd7 */
291 /* 0xd8 0xd9 0xda 0xdb */
296 /* 0xdc 0xdd 0xde 0xdf */
301 /* 0xe0 0xe1 0xe2 0xe3 */
306 /* 0xe4 0xe5 0xe6 0xe7 */
311 /* 0xe8 0xe9 0xea 0xeb */
316 /* 0xec 0xed 0xee 0xef */
321 /* 0xf0 0xf1 0xf2 0xf3 */
326 /* 0xf4 0xf5 0xf6 0xf7 */
331 /* 0xf8 0xf9 0xfa 0xfb */
336 /* 0xfc 0xfd 0xfe 0xff */
343 // #pragma mark ISO8859 table
344 int gISO8859GroundTable
[] =
346 /* NUL SOH STX ETX */
351 /* EOT ENQ ACK BEL */
360 CASE_LF
, /*CASE_UP,*/
362 CASE_LF
, /*CASE_IGNORE,*/
366 /* DLE DC1 DC2 DC3 */
371 /* DC4 NAK SYN ETB */
506 /* 0x80 0x81 0x82 0x83 */
511 /* 0x84 0x85 0x86 0x87 */
516 /* 0x88 0x89 0x8a 0x8b */
521 /* 0x8c 0x8d 0x8e 0x8f */
526 /* 0x90 0x91 0x92 0x93 */
531 /* 0x94 0x95 0x96 0x97 */
536 /* 0x99 0x99 0x9a 0x9b */
541 /* 0x9c 0x9d 0x9e 0x9f */
546 /* nobreakspace exclamdown cent sterling */
551 /* currency yen brokenbar section */
556 /* diaeresis copyright ordfeminine guillemotleft */
561 /* notsign hyphen registered macron */
566 /* degree plusminus twosuperior threesuperior */
571 /* acute mu paragraph periodcentered */
576 /* cedilla onesuperior masculine guillemotright */
581 /* onequarter onehalf threequarters questiondown */
586 /* Agrave Aacute Acircumflex Atilde */
591 /* Adiaeresis Aring AE Ccedilla */
596 /* Egrave Eacute Ecircumflex Ediaeresis */
601 /* Igrave Iacute Icircumflex Idiaeresis */
606 /* Eth Ntilde Ograve Oacute */
611 /* Ocircumflex Otilde Odiaeresis multiply */
616 /* Ooblique Ugrave Uacute Ucircumflex */
621 /* Udiaeresis Yacute Thorn ssharp */
626 /* agrave aacute acircumflex atilde */
631 /* adiaeresis aring ae ccedilla */
636 /* egrave eacute ecircumflex ediaeresis */
641 /* igrave iacute icircumflex idiaeresis */
646 /* eth ntilde ograve oacute */
651 /* ocircumflex otilde odiaeresis division */
656 /* oslash ugrave uacute ucircumflex */
661 /* udiaeresis yacute thorn ydiaeresis */
668 // #pragma mark WinCP table (ISO8859 + C1)
669 // This one defines both C1 control and GR characters
670 // as CASE_PRINT_GR to let process set of encodings
671 // using this areas: cp1252, cp1251, koi-8r, cp866, gb18030
672 int gWinCPGroundTable
[] =
674 /* NUL SOH STX ETX */
679 /* EOT ENQ ACK BEL */
688 CASE_LF
, /*CASE_UP,*/
690 CASE_LF
, /*CASE_IGNORE,*/
694 /* DLE DC1 DC2 DC3 */
699 /* DC4 NAK SYN ETB */
834 /* 0x80 0x81 0x82 0x83 */
839 /* 0x84 0x85 0x86 0x87 */
844 /* 0x88 0x89 0x8a 0x8b */
849 /* 0x8c 0x8d 0x8e 0x8f */
854 /* 0x90 0x91 0x92 0x93 */
859 /* 0x94 0x95 0x96 0x97 */
864 /* 0x99 0x99 0x9a 0x9b */
869 /* 0x9c 0x9d 0x9e 0x9f */
874 /* nobreakspace exclamdown cent sterling */
879 /* currency yen brokenbar section */
884 /* diaeresis copyright ordfeminine guillemotleft */
889 /* notsign hyphen registered macron */
894 /* degree plusminus twosuperior threesuperior */
899 /* acute mu paragraph periodcentered */
904 /* cedilla onesuperior masculine guillemotright */
909 /* onequarter onehalf threequarters questiondown */
914 /* Agrave Aacute Acircumflex Atilde */
919 /* Adiaeresis Aring AE Ccedilla */
924 /* Egrave Eacute Ecircumflex Ediaeresis */
929 /* Igrave Iacute Icircumflex Idiaeresis */
934 /* Eth Ntilde Ograve Oacute */
939 /* Ocircumflex Otilde Odiaeresis multiply */
944 /* Ooblique Ugrave Uacute Ucircumflex */
949 /* Udiaeresis Yacute Thorn ssharp */
954 /* agrave aacute acircumflex atilde */
959 /* adiaeresis aring ae ccedilla */
964 /* egrave eacute ecircumflex ediaeresis */
969 /* igrave iacute icircumflex idiaeresis */
974 /* eth ntilde ograve oacute */
979 /* ocircumflex otilde odiaeresis division */
984 /* oslash ugrave uacute ucircumflex */
989 /* udiaeresis yacute thorn ydiaeresis */
996 // #pragma mark ESC [ - CSI table
999 /* NUL SOH STX ETX */
1004 /* EOT ENQ ACK BEL */
1019 /* DLE DC1 DC2 DC3 */
1024 /* DC4 NAK SYN ETB */
1029 /* CAN EM SUB ESC */
1159 /* 0x80 0x81 0x82 0x83 */
1164 /* 0x84 0x85 0x86 0x87 */
1169 /* 0x88 0x89 0x8a 0x8b */
1174 /* 0x8c 0x8d 0x8e 0x8f */
1179 /* 0x90 0x91 0x92 0x93 */
1184 /* 0x94 0x95 0x96 0x97 */
1189 /* 0x99 0x99 0x9a 0x9b */
1194 /* 0x9c 0x9d 0x9e 0x9f */
1199 /* nobreakspace exclamdown cent sterling */
1204 /* currency yen brokenbar section */
1209 /* diaeresis copyright ordfeminine guillemotleft */
1214 /* notsign hyphen registered macron */
1219 /* degree plusminus twosuperior threesuperior */
1224 /* acute mu paragraph periodcentered */
1229 /* cedilla onesuperior masculine guillemotright */
1234 /* onequarter onehalf threequarters questiondown */
1239 /* Agrave Aacute Acircumflex Atilde */
1244 /* Adiaeresis Aring AE Ccedilla */
1249 /* Egrave Eacute Ecircumflex Ediaeresis */
1254 /* Igrave Iacute Icircumflex Idiaeresis */
1259 /* Eth Ntilde Ograve Oacute */
1264 /* Ocircumflex Otilde Odiaeresis multiply */
1269 /* Ooblique Ugrave Uacute Ucircumflex */
1274 /* Udiaeresis Yacute Thorn ssharp */
1279 /* agrave aacute acircumflex atilde */
1284 /* adiaeresis aring ae ccedilla */
1289 /* egrave eacute ecircumflex ediaeresis */
1294 /* igrave iacute icircumflex idiaeresis */
1299 /* eth ntilde ograve oacute */
1304 /* ocircumflex otilde odiaeresis division */
1309 /* oslash ugrave uacute ucircumflex */
1314 /* udiaeresis yacute thorn ydiaeresis */
1321 // #pragma mark ESC [ ? - DEC table
1324 /* NUL SOH STX ETX */
1329 /* EOT ENQ ACK BEL */
1344 /* DLE DC1 DC2 DC3 */
1349 /* DC4 NAK SYN ETB */
1354 /* CAN EM SUB ESC */
1484 /* 0x80 0x81 0x82 0x83 */
1489 /* 0x84 0x85 0x86 0x87 */
1494 /* 0x88 0x89 0x8a 0x8b */
1499 /* 0x8c 0x8d 0x8e 0x8f */
1504 /* 0x90 0x91 0x92 0x93 */
1509 /* 0x94 0x95 0x96 0x97 */
1514 /* 0x99 0x99 0x9a 0x9b */
1519 /* 0x9c 0x9d 0x9e 0x9f */
1524 /* nobreakspace exclamdown cent sterling */
1529 /* currency yen brokenbar section */
1534 /* diaeresis copyright ordfeminine guillemotleft */
1539 /* notsign hyphen registered macron */
1544 /* degree plusminus twosuperior threesuperior */
1549 /* acute mu paragraph periodcentered */
1554 /* cedilla onesuperior masculine guillemotright */
1559 /* onequarter onehalf threequarters questiondown */
1564 /* Agrave Aacute Acircumflex Atilde */
1569 /* Adiaeresis Aring AE Ccedilla */
1574 /* Egrave Eacute Ecircumflex Ediaeresis */
1579 /* Igrave Iacute Icircumflex Idiaeresis */
1584 /* Eth Ntilde Ograve Oacute */
1589 /* Ocircumflex Otilde Odiaeresis multiply */
1594 /* Ooblique Ugrave Uacute Ucircumflex */
1599 /* Udiaeresis Yacute Thorn ssharp */
1604 /* agrave aacute acircumflex atilde */
1609 /* adiaeresis aring ae ccedilla */
1614 /* egrave eacute ecircumflex ediaeresis */
1619 /* igrave iacute icircumflex idiaeresis */
1624 /* eth ntilde ograve oacute */
1629 /* ocircumflex otilde odiaeresis division */
1634 /* oslash ugrave uacute ucircumflex */
1639 /* udiaeresis yacute thorn ydiaeresis */
1646 // #pragma mark CASE_ESC_IGNORE table
1647 int gEscIgnoreTable
[] =
1649 /* NUL SOH STX ETX */
1654 /* EOT ENQ ACK BEL */
1669 /* DLE DC1 DC2 DC3 */
1674 /* DC4 NAK SYN ETB */
1679 /* CAN EM SUB ESC */
1810 /* 0x80 0x81 0x82 0x83 */
1815 /* 0x84 0x85 0x86 0x87 */
1820 /* 0x88 0x89 0x8a 0x8b */
1825 /* 0x8c 0x8d 0x8e 0x8f */
1830 /* 0x90 0x91 0x92 0x93 */
1835 /* 0x94 0x95 0x96 0x97 */
1840 /* 0x99 0x99 0x9a 0x9b */
1845 /* 0x9c 0x9d 0x9e 0x9f */
1850 /* nobreakspace exclamdown cent sterling */
1855 /* currency yen brokenbar section */
1860 /* diaeresis copyright ordfeminine guillemotleft */
1865 /* notsign hyphen registered macron */
1870 /* degree plusminus twosuperior threesuperior */
1875 /* acute mu paragraph periodcentered */
1880 /* cedilla onesuperior masculine guillemotright */
1885 /* onequarter onehalf threequarters questiondown */
1890 /* Agrave Aacute Acircumflex Atilde */
1895 /* Adiaeresis Aring AE Ccedilla */
1900 /* Egrave Eacute Ecircumflex Ediaeresis */
1905 /* Igrave Iacute Icircumflex Idiaeresis */
1910 /* Eth Ntilde Ograve Oacute */
1915 /* Ocircumflex Otilde Odiaeresis multiply */
1920 /* Ooblique Ugrave Uacute Ucircumflex */
1925 /* Udiaeresis Yacute Thorn ssharp */
1930 /* agrave aacute acircumflex atilde */
1935 /* adiaeresis aring ae ccedilla */
1940 /* egrave eacute ecircumflex ediaeresis */
1945 /* igrave iacute icircumflex idiaeresis */
1950 /* eth ntilde ograve oacute */
1955 /* ocircumflex otilde odiaeresis division */
1960 /* oslash ugrave uacute ucircumflex */
1965 /* udiaeresis yacute thorn ydiaeresis */
1972 // #pragma mark ESC table
1975 /* NUL SOH STX ETX */
1980 /* EOT ENQ ACK BEL */
1989 CASE_LF
, /*CASE_UP,*/
1991 CASE_LF
, /*CASE_IGNORE,*/
1995 /* DLE DC1 DC2 DC3 */
2000 /* DC4 NAK SYN ETB */
2005 /* CAN EM SUB ESC */
2031 CASE_SCS_STATE
, /* not defined in ISO2022 but used in Mule */
2135 /* 0x80 0x81 0x82 0x83 */
2140 /* 0x84 0x85 0x86 0x87 */
2145 /* 0x88 0x89 0x8a 0x8b */
2150 /* 0x8c 0x8d 0x8e 0x8f */
2155 /* 0x90 0x91 0x92 0x93 */
2160 /* 0x94 0x95 0x96 0x97 */
2165 /* 0x99 0x99 0x9a 0x9b */
2170 /* 0x9c 0x9d 0x9e 0x9f */
2175 /* nobreakspace exclamdown cent sterling */
2180 /* currency yen brokenbar section */
2185 /* diaeresis copyright ordfeminine guillemotleft */
2190 /* notsign hyphen registered macron */
2195 /* degree plusminus twosuperior threesuperior */
2200 /* acute mu paragraph periodcentered */
2205 /* cedilla onesuperior masculine guillemotright */
2210 /* onequarter onehalf threequarters questiondown */
2215 /* Agrave Aacute Acircumflex Atilde */
2220 /* Adiaeresis Aring AE Ccedilla */
2225 /* Egrave Eacute Ecircumflex Ediaeresis */
2230 /* Igrave Iacute Icircumflex Idiaeresis */
2235 /* Eth Ntilde Ograve Oacute */
2240 /* Ocircumflex Otilde Odiaeresis multiply */
2245 /* Ooblique Ugrave Uacute Ucircumflex */
2250 /* Udiaeresis Yacute Thorn ssharp */
2255 /* agrave aacute acircumflex atilde */
2260 /* adiaeresis aring ae ccedilla */
2265 /* egrave eacute ecircumflex ediaeresis */
2270 /* igrave iacute icircumflex idiaeresis */
2275 /* eth ntilde ograve oacute */
2280 /* ocircumflex otilde odiaeresis division */
2285 /* oslash ugrave uacute ucircumflex */
2290 /* udiaeresis yacute thorn ydiaeresis */
2297 // #pragma mark CASE_IGNORE_ESC table
2300 /* NUL SOH STX ETX */
2305 /* EOT ENQ ACK BEL */
2320 /* DLE DC1 DC2 DC3 */
2325 /* DC4 NAK SYN ETB */
2330 /* CAN EM SUB ESC */
2460 /* 0x80 0x81 0x82 0x83 */
2465 /* 0x84 0x85 0x86 0x87 */
2470 /* 0x88 0x89 0x8a 0x8b */
2475 /* 0x8c 0x8d 0x8e 0x8f */
2480 /* 0x90 0x91 0x92 0x93 */
2485 /* 0x94 0x95 0x96 0x97 */
2490 /* 0x99 0x99 0x9a 0x9b */
2495 /* 0x9c 0x9d 0x9e 0x9f */
2500 /* nobreakspace exclamdown cent sterling */
2505 /* currency yen brokenbar section */
2510 /* diaeresis copyright ordfeminine guillemotleft */
2515 /* notsign hyphen registered macron */
2520 /* degree plusminus twosuperior threesuperior */
2525 /* acute mu paragraph periodcentered */
2530 /* cedilla onesuperior masculine guillemotright */
2535 /* onequarter onehalf threequarters questiondown */
2540 /* Agrave Aacute Acircumflex Atilde */
2545 /* Adiaeresis Aring AE Ccedilla */
2550 /* Egrave Eacute Ecircumflex Ediaeresis */
2555 /* Igrave Iacute Icircumflex Idiaeresis */
2560 /* Eth Ntilde Ograve Oacute */
2565 /* Ocircumflex Otilde Odiaeresis multiply */
2570 /* Ooblique Ugrave Uacute Ucircumflex */
2575 /* Udiaeresis Yacute Thorn ssharp */
2580 /* agrave aacute acircumflex atilde */
2585 /* adiaeresis aring ae ccedilla */
2590 /* egrave eacute ecircumflex ediaeresis */
2595 /* igrave iacute icircumflex idiaeresis */
2600 /* eth ntilde ograve oacute */
2605 /* ocircumflex otilde odiaeresis division */
2610 /* oslash ugrave uacute ucircumflex */
2615 /* udiaeresis yacute thorn ydiaeresis */
2622 // #pragma mark CASE_IGNORE_STATE table
2623 int gIgnoreTable
[] =
2625 /* NUL SOH STX ETX */
2630 /* EOT ENQ ACK BEL */
2645 /* DLE DC1 DC2 DC3 */
2650 /* DC4 NAK SYN ETB */
2655 /* CAN EM SUB ESC */
2785 /* 0x80 0x81 0x82 0x83 */
2790 /* 0x84 0x85 0x86 0x87 */
2795 /* 0x88 0x89 0x8a 0x8b */
2800 /* 0x8c 0x8d 0x8e 0x8f */
2805 /* 0x90 0x91 0x92 0x93 */
2810 /* 0x94 0x95 0x96 0x97 */
2815 /* 0x99 0x99 0x9a 0x9b */
2820 /* 0x9c 0x9d 0x9e 0x9f */
2825 /* nobreakspace exclamdown cent sterling */
2830 /* currency yen brokenbar section */
2835 /* diaeresis copyright ordfeminine guillemotleft */
2840 /* notsign hyphen registered macron */
2845 /* degree plusminus twosuperior threesuperior */
2850 /* acute mu paragraph periodcentered */
2855 /* cedilla onesuperior masculine guillemotright */
2860 /* onequarter onehalf threequarters questiondown */
2865 /* Agrave Aacute Acircumflex Atilde */
2870 /* Adiaeresis Aring AE Ccedilla */
2875 /* Egrave Eacute Ecircumflex Ediaeresis */
2880 /* Igrave Iacute Icircumflex Idiaeresis */
2885 /* Eth Ntilde Ograve Oacute */
2890 /* Ocircumflex Otilde Odiaeresis multiply */
2895 /* Ooblique Ugrave Uacute Ucircumflex */
2900 /* Udiaeresis Yacute Thorn ssharp */
2905 /* agrave aacute acircumflex atilde */
2910 /* adiaeresis aring ae ccedilla */
2915 /* egrave eacute ecircumflex ediaeresis */
2920 /* igrave iacute icircumflex idiaeresis */
2925 /* eth ntilde ograve oacute */
2930 /* ocircumflex otilde odiaeresis division */
2935 /* oslash ugrave uacute ucircumflex */
2940 /* udiaeresis yacute thorn ydiaeresis */
2947 // #pragma mark ESC # - SCR table
2950 /* NUL SOH STX ETX */
2955 /* EOT ENQ ACK BEL */
2970 /* DLE DC1 DC2 DC3 */
2975 /* DC4 NAK SYN ETB */
2980 /* CAN EM SUB ESC */
3110 /* 0x80 0x81 0x82 0x83 */
3115 /* 0x84 0x85 0x86 0x87 */
3120 /* 0x88 0x89 0x8a 0x8b */
3125 /* 0x8c 0x8d 0x8e 0x8f */
3130 /* 0x90 0x91 0x92 0x93 */
3135 /* 0x94 0x95 0x96 0x97 */
3140 /* 0x99 0x99 0x9a 0x9b */
3145 /* 0x9c 0x9d 0x9e 0x9f */
3150 /* nobreakspace exclamdown cent sterling */
3155 /* currency yen brokenbar section */
3160 /* diaeresis copyright ordfeminine guillemotleft */
3165 /* notsign hyphen registered macron */
3170 /* degree plusminus twosuperior threesuperior */
3175 /* acute mu paragraph periodcentered */
3180 /* cedilla onesuperior masculine guillemotright */
3185 /* onequarter onehalf threequarters questiondown */
3190 /* Agrave Aacute Acircumflex Atilde */
3195 /* Adiaeresis Aring AE Ccedilla */
3200 /* Egrave Eacute Ecircumflex Ediaeresis */
3205 /* Igrave Iacute Icircumflex Idiaeresis */
3210 /* Eth Ntilde Ograve Oacute */
3215 /* Ocircumflex Otilde Odiaeresis multiply */
3220 /* Ooblique Ugrave Uacute Ucircumflex */
3225 /* Udiaeresis Yacute Thorn ssharp */
3230 /* agrave aacute acircumflex atilde */
3235 /* adiaeresis aring ae ccedilla */
3240 /* egrave eacute ecircumflex ediaeresis */
3245 /* igrave iacute icircumflex idiaeresis */
3250 /* eth ntilde ograve oacute */
3255 /* ocircumflex otilde odiaeresis division */
3260 /* oslash ugrave uacute ucircumflex */
3265 /* udiaeresis yacute thorn ydiaeresis */
3272 // #pragma mark Shift-JIS ground table
3273 int gSJISGroundTable
[] =
3275 /* NUL SOH STX ETX */
3280 /* EOT ENQ ACK BEL */
3289 CASE_LF
, /*CASE_UP,*/
3291 CASE_LF
, /*CASE_IGNORE,*/
3295 /* DLE DC1 DC2 DC3 */
3300 /* DC4 NAK SYN ETB */
3305 /* CAN EM SUB ESC */
3435 /* 0x80 0x81 0x82 0x83 */
3440 /* 0x84 0x85 0x86 0x87 */
3445 /* 0x88 0x89 0x8a 0x8b */
3450 /* 0x8c 0x8d 0x8e 0x8f */
3455 /* 0x90 0x91 0x92 0x93 */
3460 /* 0x94 0x95 0x96 0x97 */
3465 /* 0x99 0x99 0x9a 0x9b */
3470 /* 0x9c 0x9d 0x9e 0x9f */
3475 /* 0xa0 0xa1 0xa2 0xa3 */
3480 /* 0xa4 0xa5 0xa6 0xa7 */
3485 /* 0xa8 0xa9 0xaa 0xab */
3490 /* 0xac 0xad 0xae 0xaf */
3495 /* 0xb0 0xb1 0xb2 0xb3 */
3500 /* 0xb4 0xb5 0xb6 0xb7 */
3505 /* 0xb8 0xb9 0xba 0xbb */
3510 /* 0xbc 0xbd 0xbe 0xbf */
3515 /* 0xc0 0xc1 0xc2 0xc3 */
3520 /* 0xc4 0xc5 0xc6 0xc7 */
3525 /* 0xc8 0xc9 0xca 0xcb */
3530 /* 0xcc 0xcd 0xce 0xcf */
3535 /* 0xd0 0xd1 0xd2 0xd3 */
3540 /* 0xd4 0xd5 0xd6 0xd7 */
3545 /* 0xd8 0xd9 0xda 0xdb */
3550 /* 0xdc 0xdd 0xde 0xdf */
3555 /* 0xe0 0xe1 0xe2 0xe3 */
3560 /* 0xe4 0xe5 0xe6 0xe7 */
3565 /* 0xe8 0xe9 0xea 0xeb */
3570 /* 0xec 0xed 0xee 0xef */
3575 /* 0xf0 0xf1 0xf2 0xf3 */
3580 /* 0xf4 0xf5 0xf6 0xf7 */
3585 /* 0xf8 0xf9 0xfa 0xfb */
3590 /* 0xfc 0xfd 0xfe 0xff */
3598 * 94/96 alternative character sets for G0-G3
3600 * - characters to replace are UTF-8 literals
3601 * - NULL mean falling through to corresponding ASCII chars
3605 /* DEC Special Graphic Character Set - mix of xterm
3606 definitions and ncurses extended characters (ACS_) */
3607 const char* gLineDrawGraphSet
[96] =
3625 "\xE2\x86\x92", // ACS_RARROW
3628 "\xE2\x86\x90", // ACS_LARROW
3629 "\xE2\x86\x91", // ACS_UARROW
3630 "\xE2\x86\x93", // ACS_DARROW
3634 "\xE2\x96\xAE", // ACS_BLOCK
3702 "\xE2\x96\xAE", // xterm: black vertical rectangle
3705 "\xE2\x97\x86", // ACS_DIAMOND
3706 "\xE2\x96\x92", // ACS_CKBOARD
3707 "\xE2\x90\x89", // xterm:symbol for horizontal tabulation
3708 "\xE2\x90\x8C", // xterm:symbol for form feed
3711 "\xE2\x90\x8D", // xterm:symbol for carriage return
3712 "\xE2\x90\x8A", // xterm:symbol for line feed
3713 "\xC2\xB0", // ACS_DEGREE
3714 "\xC2\xB1", // ACS_PLMINUS
3717 "\xE2\x90\xA4", // xterm:symbol for newline (ACS_BOARD)
3718 "\xE2\x98\x83", // ACS_LANTERN (xterm:symbol for vert.tab: \xE2\x90\x8B)
3719 "\xE2\x94\x98", // ACS_LRCORNER
3720 "\xE2\x94\x90", // ACS_URCORNER
3723 "\xE2\x94\x8C", // ACS_ULCORNER
3724 "\xE2\x94\x94", // ACS_LLCORNER
3725 "\xE2\x94\xBC", // ACS_PLUS
3726 "\xE2\x8E\xBA", // ACS_S1
3729 "\xE2\x8E\xBB", // ACS_S3
3730 "\xE2\x94\x80", // ACS_HLINE
3731 "\xE2\x8E\xBC", // ACS_S7
3732 "\xE2\x8E\xBD", // ACS_S9
3735 "\xE2\x94\x9C", // ACS_LTEE
3736 "\xE2\x94\xA4", // ACS_RTEE
3737 "\xE2\x94\xB4", // ACS_BTEE
3738 "\xE2\x94\xAC", // ACS_TTEE
3741 "\xE2\x94\x82", // ACS_VLINE
3742 "\xE2\x89\xA4", // ACS_LEQUAL
3743 "\xE2\x89\xA5", // ACS_GEQUAL
3744 "\xCF\x80", // ACS_PI
3747 "\xE2\x89\xA0", // ACS_NEQUAL
3748 "\xC2\xA3", // ACS_STERLING
3749 "\xC2\xB7", // ACS_BULLET