* iconvdata/TESTS: Add entries for IBM856, IBM930, IBM933, IBM935,
	IBM937, IBM939, and IBM1046.
	* iconvdata/testdata/IBM1046: New file.
	* iconvdata/testdata/IBM930..UTF8: New file.
	* iconvdata/testdata/IBM1046..UTF8: New file.
	* iconvdata/testdata/IBM933: New file.
	* iconvdata/testdata/IBM935: New file.
	* iconvdata/testdata/IBM937: New file.
	* iconvdata/testdata/IBM856..UTF8: New file.
	* iconvdata/testdata/IBM939: New file.
	* iconvdata/testdata/IBM933..UTF8: New file.
	* iconvdata/testdata/IBM935..UTF8: New file.
	* iconvdata/testdata/IBM930: New file.
	* iconvdata/testdata/IBM856: New file.
	* iconvdata/testdata/IBM937..UTF8: New file.
	* iconvdata/testdata/IBM939..UTF8: New file.
	Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>.

2000-11-01  Martin Buchholz  <martin@xemacs.org>

	* manual/memory.texi (Hooks for Malloc): Fix `caller' arg docs to
	agree with implementation.

2000-11-01  Ulrich Drepper  <drepper@redhat.com>
This commit is contained in:
Ulrich Drepper 2000-11-02 07:51:38 +00:00
parent 275cdda0e2
commit 18a3a9a3b4
23 changed files with 784 additions and 112 deletions

View File

@ -1,3 +1,28 @@
2000-11-01 Ulrich Drepper <drepper@redhat.com>
* iconvdata/TESTS: Add entries for IBM856, IBM930, IBM933, IBM935,
IBM937, IBM939, and IBM1046.
* iconvdata/testdata/IBM1046: New file.
* iconvdata/testdata/IBM930..UTF8: New file.
* iconvdata/testdata/IBM1046..UTF8: New file.
* iconvdata/testdata/IBM933: New file.
* iconvdata/testdata/IBM935: New file.
* iconvdata/testdata/IBM937: New file.
* iconvdata/testdata/IBM856..UTF8: New file.
* iconvdata/testdata/IBM939: New file.
* iconvdata/testdata/IBM933..UTF8: New file.
* iconvdata/testdata/IBM935..UTF8: New file.
* iconvdata/testdata/IBM930: New file.
* iconvdata/testdata/IBM856: New file.
* iconvdata/testdata/IBM937..UTF8: New file.
* iconvdata/testdata/IBM939..UTF8: New file.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>.
2000-11-01 Martin Buchholz <martin@xemacs.org>
* manual/memory.texi (Hooks for Malloc): Fix `caller' arg docs to
agree with implementation.
2000-11-01 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/bits/time.h (CLK_TCK): Cast sysconf result

View File

@ -88,3 +88,10 @@ EUC-TW EUC-TW Y UTF8
GBK GBK Y UTF8
BIG5HKSCS BIG5HKSCS Y UTF8
UTF-7 UTF-7 N UTF8
IBM856 IBM856 N UTF8
IBM930 IBM930 N UTF8
IBM933 IBM933 N UTF8
IBM935 IBM935 N UTF8
IBM937 IBM937 N UTF8
IBM939 IBM939 N UTF8
IBM1046 IBM1046 Y UTF8

View File

@ -84,8 +84,8 @@ while read from to subset targets; do
rm -f $temp1 $temp2
# Now test some bigger text, entirely in ASCII. If ASCII is no subset
# of the coded character set we test we convert the test to this
# coded character set. Otherwise we convert to all the TARGETS.
# of the coded character set we convert the text to this coded character
# set. Otherwise we convert to all the TARGETS.
if test $subset = Y; then
echo $ac_n " suntzu: $from -> $t -> $to $ac_c"
$PROG -f $from -t $t testdata/suntzus |

14
iconvdata/testdata/IBM1046 vendored Normal file
View File

@ -0,0 +1,14 @@
! " # $ % & ' ( ) * + , - . / 0
1 2 3 4 5 6 7 8 9 : ; < = > ? @ A
B C D E F G H I J K L M N O P Q R
S T U V W X Y Z [ \ ] ^ _ ` a b c
d e f g h i j k l m n o p q r s t
u v w x y z { | } ~ <20> Ó Ô Õ
Ö ‡ ˆ ‰ Š Œ <20> Ž <20> <20> “ ” •
˜ ™ š œ <20> ž Ÿ   Ü Ý € ¤ Þ ¦ §
¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸
¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É
Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú
Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë
ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü
ý þ

14
iconvdata/testdata/IBM1046..UTF8 vendored Normal file
View File

@ -0,0 +1,14 @@
! " # $ % & ' ( ) * + , - . / 0
1 2 3 4 5 6 7 8 9 : ; < = > ? @ A
B C D E F G H I J K L M N O P Q R
S T U V W X Y Z [ \ ] ^ _ ` a b c
d e f g h i j k l m n o p q r s t
u v w x y z { | } ~ × ÷ س ش ص
ض ﹱ ˆ ■ │ ─ ┐ ┌ └ ┘ ﹹ ﹻ ﹽ ﹿ ﹷ ﺊ ﻰ
ﻳ ﻲ ﻎ ﻏ ﻐ ﻶ ﻸ ﻺ ﻼ   ﺂ ﺄ ﺈ ¤ ﺋ ﺑ
ﺗ ﺛ ﺟ ﺣ ، ­ ﺧ ﺳ ٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨
٩ ﺷ ؛ ﺻ ﺿ ﻊ ؟ ﻋ ء آ أ ؤ إ ئ ا ب ة
ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ
ﻌ ﺂ ﺄ ﻓ ـ ف ق ك ل م ن ه و ى ي ً
ٌ ٍ َ ُ ِ ّ ْ ﻗ ﻛ ﻟ ﻵ ﻷ ﻹ ﻻ ﻣ ﻧ

11
iconvdata/testdata/IBM856 vendored Normal file
View File

@ -0,0 +1,11 @@
! " # $ % & ' ( ) * + , - . / 0
1 2 3 4 5 6 7 8 9 : ; < = > ? @ A
B C D E F G H I J K L M N O P Q R
S T U V W X Y Z [ \ ] ^ _ ` a b c
d e f g h i j k l m n o p q r s t
u v w x y z { | } ~ <20> ƒ „ …
† ‡ ˆ ‰ Š Œ <20> Ž <20> <20> “ ” •
˜ ™ š œ ž © ª « ¬ ® ¯ ° ± ² ³ ´
¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å È É Ê
Ë Ì Í Î Ï Ù Ú Û Ü Ý ß æ î ï ð ñ ò
ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

11
iconvdata/testdata/IBM856..UTF8 vendored Normal file
View File

@ -0,0 +1,11 @@
! " # $ % & ' ( ) * + , - . / 0
1 2 3 4 5 6 7 8 9 : ; < = > ? @ A
B C D E F G H I J K L M N O P Q R
S T U V W X Y Z [ \ ] ^ _ ` a b c
d e f g h i j k l m n o p q r s t
u v w x y z { | } ~  א ב ג ד ה ו
ז ח ט י ך כ ל ם מ ן נ ס ע ף פ ץ צ
ק ר ש ת £ × ® ¬ ½ ¼ « » ░ ▒ ▓ │ ┤
© ╣ ║ ╗ ╝ ¢ ¥ ┐ └ ┴ ┬ ├ ─ ┼ ╚ ╔ ╩
╦ ╠ ═ ╬ ¤ ┘ ┌ █ ▄ ¦ ▀ µ ‾ ´ ­ ± ‗
¾ ¶ § ÷ ¸ ° ¨ • ¹ ³ ² ■  

BIN
iconvdata/testdata/IBM930 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM930..UTF8 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM933 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM933..UTF8 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM935 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM935..UTF8 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM937 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM937..UTF8 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM939 vendored Normal file

Binary file not shown.

BIN
iconvdata/testdata/IBM939..UTF8 vendored Normal file

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n"
msgid "test"
msgstr "<EFBFBD>ワヨ゚"
msgstr "ォゥ<EFBFBD>ニ゚サ"
msgid "onemore"
msgstr "トssdf"
msgstr "ス*ス=シ"

View File

@ -39,11 +39,11 @@ main (void)
puts (s); \
result |= strcmp (s, exp) != 0;
TEST ("test", "aeoeueAEUEOEss");
TEST ("test", "aeoeueAEUEOEss");
TEST ("onemore", "AEssdf");
TEST ("onemore", "AEssdf");
TEST ("test", "aeoeueAEUEOEss");
TEST ("test", "<<(C) AEss>>");
TEST ("test", "<<(C) AEss>>");
TEST ("onemore", "1/2*1/2=1/4");
TEST ("onemore", "1/2*1/2=1/4");
TEST ("test", "<<(C) AEss>>");
return result;
}

View File

@ -1,21 +1,258 @@
#define NTRANSLIT 20
#define NTRANSLIT 425
static const uint32_t translit_from_idx[] =
{
0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22,
24, 26, 28, 30, 32, 34, 36, 38
24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46,
48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70,
72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94,
96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166,
168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190,
192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214,
216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238,
240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262,
264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286,
288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310,
312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334,
336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358,
360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406,
408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430,
432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454,
456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478,
480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526,
528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550,
552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574,
576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598,
600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646,
648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670,
672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694,
696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718,
720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742,
744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766,
768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790,
792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814,
816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838,
840, 842, 844, 846, 848
};
static const wchar_t translit_from_tbl[] =
L"\xa9" L"\0" L"\xab" L"\0" L"\xae" L"\0" L"\xbb" L"\0" L"\xbc" L"\0"
L"\xbd" L"\0" L"\xbe" L"\0" L"\xc4" L"\0" L"\xc5" L"\0" L"\xc6" L"\0"
L"\xd6" L"\0" L"\xdc" L"\0" L"\xdf" L"\0" L"\xe4" L"\0" L"\xe5" L"\0"
L"\xe6" L"\0" L"\xf6" L"\0" L"\xfc" L"\0" L"\x201c" L"\0" L"\x201d";
L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae"
L"\0" L"\x00bb" L"\0" L"\x00bc" L"\0" L"\x00bd" L"\0" L"\x00be" L"\0"
L"\x00c6" L"\0" L"\x00df" L"\0" L"\x00e6" L"\0" L"\x0132" L"\0" L"\x0133"
L"\0" L"\x017f" L"\0" L"\x01c7" L"\0" L"\x01c8" L"\0" L"\x01c9" L"\0"
L"\x01ca" L"\0" L"\x01cb" L"\0" L"\x01cc" L"\0" L"\x01f1" L"\0" L"\x01f2"
L"\0" L"\x01f3" L"\0" L"\x02dc" L"\0" L"\x2002" L"\0" L"\x2003" L"\0"
L"\x2004" L"\0" L"\x2005" L"\0" L"\x2006" L"\0" L"\x2008" L"\0" L"\x2009"
L"\0" L"\x200a" L"\0" L"\x2010" L"\0" L"\x2011" L"\0" L"\x2012" L"\0"
L"\x2013" L"\0" L"\x2014" L"\0" L"\x2015" L"\0" L"\x2018" L"\0" L"\x2019"
L"\0" L"\x201a" L"\0" L"\x201b" L"\0" L"\x201c" L"\0" L"\x201d" L"\0"
L"\x201e" L"\0" L"\x201f" L"\0" L"\x2020" L"\0" L"\x2022" L"\0" L"\x2024"
L"\0" L"\x2025" L"\0" L"\x2026" L"\0" L"\x2039" L"\0" L"\x203a" L"\0"
L"\x203c" L"\0" L"\x2048" L"\0" L"\x2049" L"\0" L"\x20a8" L"\0" L"\x20ac"
L"\0" L"\x2100" L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0"
L"\x2106" L"\0" L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d"
L"\0" L"\x210e" L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0"
L"\x2113" L"\0" L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a"
L"\0" L"\x211b" L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0"
L"\x2122" L"\0" L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c"
L"\0" L"\x212d" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0"
L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2153" L"\0" L"\x2154"
L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158" L"\0"
L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0" L"\x215d"
L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161" L"\0"
L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0" L"\x2166"
L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a" L"\0"
L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0" L"\x216f"
L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173" L"\0"
L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0" L"\x2178"
L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c" L"\0"
L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0" L"\x2192"
L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x2212" L"\0" L"\x2215" L"\0"
L"\x2264" L"\0" L"\x2265" L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x2460"
L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464" L"\0"
L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0" L"\x2469"
L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d" L"\0"
L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0" L"\x2472"
L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476" L"\0"
L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0" L"\x247b"
L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f" L"\0"
L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0" L"\x2484"
L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488" L"\0"
L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0" L"\x248d"
L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491" L"\0"
L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0" L"\x2496"
L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a" L"\0"
L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0" L"\x249f"
L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3" L"\0"
L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0" L"\x24a8"
L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac" L"\0"
L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0" L"\x24b1"
L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5" L"\0"
L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0" L"\x24ba"
L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be" L"\0"
L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0" L"\x24c3"
L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7" L"\0"
L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0" L"\x24cc"
L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0" L"\0"
L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0" L"\x24d5"
L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9" L"\0"
L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0" L"\x24de"
L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2" L"\0"
L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0" L"\x24e7"
L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500" L"\0"
L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0" L"\x2518"
L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534" L"\0"
L"\x253c" L"\0" L"\x3000" L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02"
L"\0" L"\xfb03" L"\0" L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0"
L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50" L"\0" L"\xfe52"
L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0" L"\xfe57" L"\0"
L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c" L"\0" L"\xfe5f"
L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0" L"\xfe63" L"\0"
L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68" L"\0" L"\xfe69"
L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xff01" L"\0" L"\xff02" L"\0"
L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05" L"\0" L"\xff06" L"\0" L"\xff07"
L"\0" L"\xff08" L"\0" L"\xff09" L"\0" L"\xff0a" L"\0" L"\xff0b" L"\0"
L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e" L"\0" L"\xff0f" L"\0" L"\xff10"
L"\0" L"\xff11" L"\0" L"\xff12" L"\0" L"\xff13" L"\0" L"\xff14" L"\0"
L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17" L"\0" L"\xff18" L"\0" L"\xff19"
L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0" L"\xff1c" L"\0" L"\xff1d" L"\0"
L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20" L"\0" L"\xff21" L"\0" L"\xff22"
L"\0" L"\xff23" L"\0" L"\xff24" L"\0" L"\xff25" L"\0" L"\xff26" L"\0"
L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29" L"\0" L"\xff2a" L"\0" L"\xff2b"
L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0" L"\xff2e" L"\0" L"\xff2f" L"\0"
L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32" L"\0" L"\xff33" L"\0" L"\xff34"
L"\0" L"\xff35" L"\0" L"\xff36" L"\0" L"\xff37" L"\0" L"\xff38" L"\0"
L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b" L"\0" L"\xff3c" L"\0" L"\xff3d"
L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0" L"\xff40" L"\0" L"\xff41" L"\0"
L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44" L"\0" L"\xff45" L"\0" L"\xff46"
L"\0" L"\xff47" L"\0" L"\xff48" L"\0" L"\xff49" L"\0" L"\xff4a" L"\0"
L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d" L"\0" L"\xff4e" L"\0" L"\xff4f"
L"\0" L"\xff50" L"\0" L"\xff51" L"\0" L"\xff52" L"\0" L"\xff53" L"\0"
L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56" L"\0" L"\xff57" L"\0" L"\xff58"
L"\0" L"\xff59" L"\0" L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0"
L"\xff5d" L"\0" L"\xff5e";
static const uint32_t translit_to_idx[] =
{
0, 5, 9, 14, 18, 23, 28, 33, 37, 41, 45, 49,
53, 57, 61, 65, 69, 73, 77, 80
0, 3, 8, 12, 15, 20, 24, 29, 34, 39, 43, 47,
51, 55, 59, 62, 66, 70, 74, 78, 82, 86, 90, 94,
98, 101, 104, 107, 110, 113, 116, 119, 122, 125, 128, 131,
134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 165, 168,
171, 174, 177, 181, 186, 189, 192, 196, 200, 204, 208, 213,
218, 223, 226, 231, 236, 239, 242, 245, 248, 251, 254, 257,
260, 263, 266, 270, 273, 276, 279, 282, 285, 290, 296, 299,
304, 307, 310, 313, 316, 319, 322, 325, 328, 331, 336, 341,
346, 351, 356, 361, 366, 371, 376, 381, 386, 391, 395, 398,
402, 407, 411, 414, 418, 423, 429, 433, 436, 440, 445, 448,
451, 454, 457, 460, 464, 469, 473, 476, 480, 485, 491, 495,
498, 502, 507, 510, 513, 516, 519, 523, 527, 531, 535, 538,
541, 545, 549, 553, 557, 562, 567, 572, 577, 582, 587, 592,
597, 602, 608, 614, 620, 626, 632, 638, 644, 650, 656, 662,
668, 673, 678, 683, 688, 693, 698, 703, 708, 713, 719, 725,
731, 737, 743, 749, 755, 761, 767, 773, 779, 783, 787, 791,
795, 799, 803, 807, 811, 815, 820, 825, 830, 835, 840, 845,
850, 855, 860, 865, 870, 875, 880, 885, 890, 895, 900, 905,
910, 915, 920, 925, 930, 935, 940, 945, 950, 955, 960, 965,
970, 975, 980, 985, 990, 995, 1000, 1005, 1010, 1015, 1020, 1025,
1030, 1035, 1040, 1045, 1050, 1055, 1060, 1065, 1070, 1075, 1080, 1085,
1090, 1095, 1100, 1105, 1110, 1115, 1120, 1125, 1130, 1135, 1140, 1145,
1150, 1155, 1160, 1165, 1170, 1175, 1180, 1185, 1190, 1195, 1200, 1205,
1210, 1215, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265,
1268, 1271, 1274, 1277, 1280, 1283, 1286, 1289, 1292, 1295, 1298, 1301,
1305, 1309, 1313, 1318, 1323, 1327, 1330, 1333, 1336, 1339, 1342, 1345,
1348, 1351, 1354, 1357, 1360, 1363, 1366, 1369, 1372, 1375, 1378, 1381,
1384, 1387, 1390, 1393, 1396, 1399, 1402, 1405, 1408, 1411, 1414, 1417,
1420, 1423, 1426, 1429, 1432, 1435, 1438, 1441, 1444, 1447, 1450, 1453,
1456, 1459, 1462, 1465, 1468, 1471, 1474, 1477, 1480, 1483, 1486, 1489,
1492, 1495, 1498, 1501, 1504, 1507, 1510, 1513, 1516, 1519, 1522, 1525,
1528, 1531, 1534, 1537, 1540, 1543, 1546, 1549, 1552, 1555, 1558, 1561,
1564, 1567, 1570, 1573, 1576, 1579, 1582, 1585, 1588, 1591, 1594, 1597,
1600, 1603, 1606, 1609, 1612, 1615, 1618, 1621, 1624, 1627, 1630, 1633,
1636, 1639, 1642, 1645, 1648, 1651, 1654, 1657, 1660, 1663, 1666, 1669,
1672, 1675, 1678, 1681, 1684
};
static const wchar_t translit_to_tbl[] =
L"(C)\0" L"\0" L"<<\0" L"\0" L"(R)\0" L"\0" L">>\0" L"\0" L"1/4\0" L"\0"
L"1/2\0" L"\0" L"3/4\0" L"\0" L"AE\0" L"\0" L"AA\0" L"\0" L"AE\0" L"\0"
L"OE\0" L"\0" L"UE\0" L"\0" L"ss\0" L"\0" L"ae\0" L"\0" L"aa\0" L"\0"
L"ae\0" L"\0" L"oe\0" L"\0" L"ue\0" L"\0" L"\"\0" L"\0" L"\"\0";
L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0"
L">>\0" L"\0" L"1/4\0" L"\0" L"1/2\0" L"\0" L"3/4\0" L"\0" L"AE\0" L"\0"
L"ss\0" L"\0" L"ae\0" L"\0" L"IJ\0" L"\0" L"ij\0" L"\0" L"s\0" L"\0" L"LJ\0"
L"\0" L"Lj\0" L"\0" L"lj\0" L"\0" L"NJ\0" L"\0" L"Nj\0" L"\0" L"nj\0" L"\0"
L"DZ\0" L"\0" L"Dz\0" L"\0" L"dz\0" L"\0" L"~\0" L"\0" L" \0" L"\0" L" \0"
L"\0" L" \0" L"\0" L" \0" L"\0" L" \0" L"\0" L" \0" L"\0" L" \0" L"\0"
L" \0" L"\0" L"-\0" L"\0" L"-\0" L"\0" L"-\0" L"\0" L"-\0" L"\0" L"-\0"
L"\0" L"-\0" L"\0" L"'\0" L"\0" L"'\0" L"\0" L",\0" L"\0" L"'\0" L"\0"
L"\"\0" L"\0" L"\"\0" L"\0" L",,\0" L"\0" L"\"\0" L"\0" L"+\0" L"\0" L"o\0"
L"\0" L".\0" L"\0" L"..\0" L"\0" L"...\0" L"\0" L"<\0" L"\0" L">\0" L"\0"
L"!!\0" L"\0" L"?!\0" L"\0" L"!?\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0"
L"a/c\0" L"\0" L"a/s\0" L"\0" L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0"
L"g\0" L"\0" L"H\0" L"\0" L"H\0" L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0"
L"\0" L"I\0" L"\0" L"L\0" L"\0" L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0"
L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0"
L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0" L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0"
L"C\0" L"\0" L"e\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0"
L"\0" L"i\0" L"\0" L"1/3\0" L"\0" L"2/3\0" L"\0" L"1/5\0" L"\0" L"2/5\0"
L"\0" L"3/5\0" L"\0" L"4/5\0" L"\0" L"1/6\0" L"\0" L"5/6\0" L"\0" L"1/8\0"
L"\0" L"3/8\0" L"\0" L"5/8\0" L"\0" L"7/8\0" L"\0" L"1/\0" L"\0" L"I\0"
L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" L"VI\0" L"\0"
L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" L"XI\0" L"\0"
L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" L"\0" L"i\0"
L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" L"vi\0" L"\0"
L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" L"xi\0" L"\0"
L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" L"\0" L"<-\0"
L"\0" L"->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" L"-\0" L"\0" L"/\0" L"\0"
L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" L">>\0" L"\0" L"(1)\0" L"\0"
L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0"
L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0"
L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0"
L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0"
L"(1)\0" L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0"
L"(6)\0" L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0"
L"(11)\0" L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0"
L"\0" L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0"
L"(20)\0" L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0"
L"5.\0" L"\0" L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0"
L"10.\0" L"\0" L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0"
L"15.\0" L"\0" L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0"
L"20.\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0"
L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0"
L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0"
L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0"
L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0"
L"(y)\0" L"\0" L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0"
L"(D)\0" L"\0" L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0"
L"(I)\0" L"\0" L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0"
L"(N)\0" L"\0" L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0"
L"(S)\0" L"\0" L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0"
L"(X)\0" L"\0" L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0"
L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0"
L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0"
L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0"
L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0"
L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0"
L"-\0" L"\0" L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0"
L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0"
L" \0" L"\0" L"ff\0" L"\0" L"fi\0" L"\0" L"fl\0" L"\0" L"ffi\0" L"\0"
L"ffl\0" L"\0" L"st\0" L"\0" L"+\0" L"\0" L"_\0" L"\0" L"_\0" L"\0" L"_\0"
L"\0" L",\0" L"\0" L".\0" L"\0" L";\0" L"\0" L":\0" L"\0" L"?\0" L"\0"
L"!\0" L"\0" L"(\0" L"\0" L")\0" L"\0" L"{\0" L"\0" L"}\0" L"\0" L"#\0"
L"\0" L"&\0" L"\0" L"*\0" L"\0" L"+\0" L"\0" L"-\0" L"\0" L"<\0" L"\0"
L">\0" L"\0" L"=\0" L"\0" L"\\\0" L"\0" L"$\0" L"\0" L"%\0" L"\0" L"@\0"
L"\0" L"!\0" L"\0" L"\"\0" L"\0" L"#\0" L"\0" L"$\0" L"\0" L"%\0" L"\0"
L"&\0" L"\0" L"'\0" L"\0" L"(\0" L"\0" L")\0" L"\0" L"*\0" L"\0" L"+\0"
L"\0" L",\0" L"\0" L"-\0" L"\0" L".\0" L"\0" L"/\0" L"\0" L"0\0" L"\0"
L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0"
L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0" L"\0" L":\0" L"\0" L";\0" L"\0"
L"<\0" L"\0" L"=\0" L"\0" L">\0" L"\0" L"?\0" L"\0" L"@\0" L"\0" L"A\0"
L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0"
L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0"
L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0"
L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0"
L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"[\0" L"\0" L"\\\0" L"\0"
L"]\0" L"\0" L"^\0" L"\0" L"_\0" L"\0" L"`\0" L"\0" L"a\0" L"\0" L"b\0"
L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0"
L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0"
L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0"
L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0"
L"\0" L"y\0" L"\0" L"z\0" L"\0" L"{\0" L"\0" L"|\0" L"\0" L"}\0" L"\0"
L"~\0";

View File

@ -20,78 +20,428 @@
/* The entries here have to be sorted relative to the input string. */
/* <U00A9> COPYRIGHT SIGN. */
"\xa9" "(C)"
/* <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK. */
"\xab" "<<"
/* <U00AE> REGISTERED SIGN. */
"\xae" "(R)"
/* <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK. */
"\xbb" ">>"
/* <U00BC> VULGAR FRACTION ONE QUARTER. */
"\xbc" "1/4"
/* <U00BD> VULGAR FRACTION ONE HALF. */
"\xbd" "1/2"
/* <U00BE> VULGAR FRACTION THREE QUARTERS. */
"\xbe" "3/4"
/* <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xc4" "AE"
/* <U00C5> LATIN CAPITAL LETTER A WITH RING ABOVE. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xc5" "AA"
/* <U00C6> LATIN CAPITAL LETTER AE. */
"\xc6" "AE"
/* <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xd6" "OE"
/* <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xdc" "UE"
/* <U00DF> LATIN SMALL LETTER SHARP S. */
"\xdf" "ss"
/* <U00E4> LATIN SMALL LETTER A WITH DIAERESIS. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xe4" "ae"
/* <U00E5> LATIN SMALL LETTER A WITH RING ABOVE. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xe5" "aa"
/* <U00E6> LATIN SMALL LETTER AE. */
"\xe6" "ae"
/* <U00F6> LATIN SMALL LETTER O WITH DIAERESIS. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xf6" "oe"
/* <U00FC> LATIN SMALL LETTER U WITH DIAERESIS. */
/* XXX It is not clear whether this is the best transliteration for
all locales. If not, we probably have to take it out completely. */
"\xfc" "ue"
/* <U201C> LEFT DOUBLE QUOTATION MARK. */
"\x201c" "\""
/* <U201D> RIGHT DOUBLE QUOTATION MARK. */
"\x201d" "\""
"\x00a0" " " /* <U00A0> NO-BREAK SPACE */
"\x00a9" "(C)" /* <U00A9> COPYRIGHT SIGN */
"\x00ab" "<<" /* <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
"\x00ad" "-" /* <U00AD> SOFT HYPHEN */
"\x00ae" "(R)" /* <U00AE> REGISTERED SIGN */
"\x00bb" ">>" /* <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
"\x00bc" "1/4" /* <U00BC> VULGAR FRACTION ONE QUARTER */
"\x00bd" "1/2" /* <U00BD> VULGAR FRACTION ONE HALF */
"\x00be" "3/4" /* <U00BE> VULGAR FRACTION THREE QUARTERS */
"\x00c6" "AE" /* <U00C6> LATIN CAPITAL LETTER AE */
"\x00df" "ss" /* <U00DF> LATIN SMALL LETTER SHARP S */
"\x00e6" "ae" /* <U00E6> LATIN SMALL LETTER AE */
"\x0132" "IJ" /* <U0132> LATIN CAPITAL LIGATURE IJ */
"\x0133" "ij" /* <U0133> LATIN SMALL LIGATURE IJ */
"\x017f" "s" /* <U017F> LATIN SMALL LETTER LONG S */
"\x01c7" "LJ" /* <U01C7> LATIN CAPITAL LETTER LJ */
"\x01c8" "Lj" /* <U01C8> LATIN CAPITAL LETTER L WITH SMALL LETTER J */
"\x01c9" "lj" /* <U01C9> LATIN SMALL LETTER LJ */
"\x01ca" "NJ" /* <U01CA> LATIN CAPITAL LETTER NJ */
"\x01cb" "Nj" /* <U01CB> LATIN CAPITAL LETTER N WITH SMALL LETTER J */
"\x01cc" "nj" /* <U01CC> LATIN SMALL LETTER NJ */
"\x01f1" "DZ" /* <U01F1> LATIN CAPITAL LETTER DZ */
"\x01f2" "Dz" /* <U01F2> LATIN CAPITAL LETTER D WITH SMALL LETTER Z */
"\x01f3" "dz" /* <U01F3> LATIN SMALL LETTER DZ */
"\x02dc" "~" /* <U02DC> SMALL TILDE */
"\x2002" " " /* <U2002> EN SPACE */
"\x2003" " " /* <U2003> EM SPACE */
"\x2004" " " /* <U2004> THREE-PER-EM SPACE */
"\x2005" " " /* <U2005> FOUR-PER-EM SPACE */
"\x2006" " " /* <U2006> SIX-PER-EM SPACE */
"\x2008" " " /* <U2008> PUNCTUATION SPACE */
"\x2009" " " /* <U2009> THIN SPACE */
"\x200a" " " /* <U200A> HAIR SPACE */
"\x2010" "-" /* <U2010> HYPHEN */
"\x2011" "-" /* <U2011> NON-BREAKING HYPHEN */
"\x2012" "-" /* <U2012> FIGURE DASH */
"\x2013" "-" /* <U2013> EN DASH */
"\x2014" "-" /* <U2014> EM DASH */
"\x2015" "-" /* <U2015> HORIZONTAL BAR */
"\x2018" "'" /* <U2018> LEFT SINGLE QUOTATION MARK */
"\x2019" "'" /* <U2019> RIGHT SINGLE QUOTATION MARK */
"\x201a" "," /* <U201A> SINGLE LOW-9 QUOTATION MARK */
"\x201b" "'" /* <U201B> SINGLE HIGH-REVERSED-9 QUOTATION MARK */
"\x201c" "\"" /* <U201C> LEFT DOUBLE QUOTATION MARK */
"\x201d" "\"" /* <U201D> RIGHT DOUBLE QUOTATION MARK */
"\x201e" ",," /* <U201E> DOUBLE LOW-9 QUOTATION MARK */
"\x201f" "\"" /* <U201F> DOUBLE HIGH-REVERSED-9 QUOTATION MARK */
"\x2020" "+" /* <U2020> DAGGER */
"\x2022" "o" /* <U2022> BULLET */
"\x2024" "." /* <U2024> ONE DOT LEADER */
"\x2025" ".." /* <U2025> TWO DOT LEADER */
"\x2026" "..." /* <U2026> HORIZONTAL ELLIPSIS */
"\x2039" "<" /* <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
"\x203a" ">" /* <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
"\x203c" "!!" /* <U203C> DOUBLE EXCLAMATION MARK */
"\x2048" "?!" /* <U2048> QUESTION EXCLAMATION MARK */
"\x2049" "!?" /* <U2049> EXCLAMATION QUESTION MARK */
"\x20a8" "Rs" /* <U20A8> RUPEE SIGN */
"\x20ac" "EUR" /* <U20AC> EURO SIGN */
"\x2100" "a/c" /* <U2100> ACCOUNT OF */
"\x2101" "a/s" /* <U2101> ADDRESSED TO THE SUBJECT */
"\x2102" "C" /* <U2102> DOUBLE-STRUCK CAPITAL C */
"\x2105" "c/o" /* <U2105> CARE OF */
"\x2106" "c/u" /* <U2106> CADA UNA */
"\x210a" "g" /* <U210A> SCRIPT SMALL G */
"\x210b" "H" /* <U210B> SCRIPT CAPITAL H */
"\x210c" "H" /* <U210C> BLACK-LETTER CAPITAL H */
"\x210d" "H" /* <U210D> DOUBLE-STRUCK CAPITAL H */
"\x210e" "h" /* <U210E> PLANCK CONSTANT */
"\x2110" "I" /* <U2110> SCRIPT CAPITAL I */
"\x2111" "I" /* <U2111> BLACK-LETTER CAPITAL I */
"\x2112" "L" /* <U2112> SCRIPT CAPITAL L */
"\x2113" "l" /* <U2113> SCRIPT SMALL L */
"\x2115" "N" /* <U2115> DOUBLE-STRUCK CAPITAL N */
"\x2116" "No" /* <U2116> NUMERO SIGN */
"\x2119" "P" /* <U2119> DOUBLE-STRUCK CAPITAL P */
"\x211a" "Q" /* <U211A> DOUBLE-STRUCK CAPITAL Q */
"\x211b" "R" /* <U211B> SCRIPT CAPITAL R */
"\x211c" "R" /* <U211C> BLACK-LETTER CAPITAL R */
"\x211d" "R" /* <U211D> DOUBLE-STRUCK CAPITAL R */
"\x2121" "TEL" /* <U2121> TELEPHONE SIGN */
"\x2122" "(TM)" /* <U2122> TRADE MARK SIGN */
"\x2124" "Z" /* <U2124> DOUBLE-STRUCK CAPITAL Z */
"\x2126" "Ohm" /* <U2126> OHM SIGN */
"\x2128" "Z" /* <U2128> BLACK-LETTER CAPITAL Z */
"\x212c" "B" /* <U212C> SCRIPT CAPITAL B */
"\x212d" "C" /* <U212D> BLACK-LETTER CAPITAL C */
"\x212f" "e" /* <U212F> SCRIPT SMALL E */
"\x2130" "E" /* <U2130> SCRIPT CAPITAL E */
"\x2131" "F" /* <U2131> SCRIPT CAPITAL F */
"\x2133" "M" /* <U2133> SCRIPT CAPITAL M */
"\x2134" "o" /* <U2134> SCRIPT SMALL O */
"\x2139" "i" /* <U2139> INFORMATION SOURCE */
"\x2153" "1/3" /* <U2153> VULGAR FRACTION ONE THIRD */
"\x2154" "2/3" /* <U2154> VULGAR FRACTION TWO THIRDS */
"\x2155" "1/5" /* <U2155> VULGAR FRACTION ONE FIFTH */
"\x2156" "2/5" /* <U2156> VULGAR FRACTION TWO FIFTHS */
"\x2157" "3/5" /* <U2157> VULGAR FRACTION THREE FIFTHS */
"\x2158" "4/5" /* <U2158> VULGAR FRACTION FOUR FIFTHS */
"\x2159" "1/6" /* <U2159> VULGAR FRACTION ONE SIXTH */
"\x215a" "5/6" /* <U215A> VULGAR FRACTION FIVE SIXTHS */
"\x215b" "1/8" /* <U215B> VULGAR FRACTION ONE EIGHTH */
"\x215c" "3/8" /* <U215C> VULGAR FRACTION THREE EIGHTHS */
"\x215d" "5/8" /* <U215D> VULGAR FRACTION FIVE EIGHTHS */
"\x215e" "7/8" /* <U215E> VULGAR FRACTION SEVEN EIGHTHS */
"\x215f" "1/" /* <U215F> FRACTION NUMERATOR ONE */
"\x2160" "I" /* <U2160> ROMAN NUMERAL ONE */
"\x2161" "II" /* <U2161> ROMAN NUMERAL TWO */
"\x2162" "III" /* <U2162> ROMAN NUMERAL THREE */
"\x2163" "IV" /* <U2163> ROMAN NUMERAL FOUR */
"\x2164" "V" /* <U2164> ROMAN NUMERAL FIVE */
"\x2165" "VI" /* <U2165> ROMAN NUMERAL SIX */
"\x2166" "VII" /* <U2166> ROMAN NUMERAL SEVEN */
"\x2167" "VIII" /* <U2167> ROMAN NUMERAL EIGHT */
"\x2168" "IX" /* <U2168> ROMAN NUMERAL NINE */
"\x2169" "X" /* <U2169> ROMAN NUMERAL TEN */
"\x216a" "XI" /* <U216A> ROMAN NUMERAL ELEVEN */
"\x216b" "XII" /* <U216B> ROMAN NUMERAL TWELVE */
"\x216c" "L" /* <U216C> ROMAN NUMERAL FIFTY */
"\x216d" "C" /* <U216D> ROMAN NUMERAL ONE HUNDRED */
"\x216e" "D" /* <U216E> ROMAN NUMERAL FIVE HUNDRED */
"\x216f" "M" /* <U216F> ROMAN NUMERAL ONE THOUSAND */
"\x2170" "i" /* <U2170> SMALL ROMAN NUMERAL ONE */
"\x2171" "ii" /* <U2171> SMALL ROMAN NUMERAL TWO */
"\x2172" "iii" /* <U2172> SMALL ROMAN NUMERAL THREE */
"\x2173" "iv" /* <U2173> SMALL ROMAN NUMERAL FOUR */
"\x2174" "v" /* <U2174> SMALL ROMAN NUMERAL FIVE */
"\x2175" "vi" /* <U2175> SMALL ROMAN NUMERAL SIX */
"\x2176" "vii" /* <U2176> SMALL ROMAN NUMERAL SEVEN */
"\x2177" "viii" /* <U2177> SMALL ROMAN NUMERAL EIGHT */
"\x2178" "ix" /* <U2178> SMALL ROMAN NUMERAL NINE */
"\x2179" "x" /* <U2179> SMALL ROMAN NUMERAL TEN */
"\x217a" "xi" /* <U217A> SMALL ROMAN NUMERAL ELEVEN */
"\x217b" "xii" /* <U217B> SMALL ROMAN NUMERAL TWELVE */
"\x217c" "l" /* <U217C> SMALL ROMAN NUMERAL FIFTY */
"\x217d" "c" /* <U217D> SMALL ROMAN NUMERAL ONE HUNDRED */
"\x217e" "d" /* <U217E> SMALL ROMAN NUMERAL FIVE HUNDRED */
"\x217f" "m" /* <U217F> SMALL ROMAN NUMERAL ONE THOUSAND */
"\x2190" "<-" /* <U2190> LEFTWARDS ARROW */
"\x2192" "->" /* <U2192> RIGHTWARDS ARROW */
"\x21d0" "<=" /* <U21D0> LEFTWARDS DOUBLE ARROW */
"\x21d2" "=>" /* <U21D2> RIGHTWARDS DOUBLE ARROW */
"\x2212" "-" /* <U2212> MINUS SIGN */
"\x2215" "/" /* <U2215> DIVISION SLASH */
"\x2264" "<=" /* <U2264> LESS-THAN OR EQUAL TO */
"\x2265" ">=" /* <U2265> GREATER-THAN OR EQUAL TO */
"\x226a" "<<" /* <U226A> MUCH LESS-THAN */
"\x226b" ">>" /* <U226B> MUCH GREATER-THAN */
"\x2460" "(1)" /* <U2460> CIRCLED DIGIT ONE */
"\x2461" "(2)" /* <U2461> CIRCLED DIGIT TWO */
"\x2462" "(3)" /* <U2462> CIRCLED DIGIT THREE */
"\x2463" "(4)" /* <U2463> CIRCLED DIGIT FOUR */
"\x2464" "(5)" /* <U2464> CIRCLED DIGIT FIVE */
"\x2465" "(6)" /* <U2465> CIRCLED DIGIT SIX */
"\x2466" "(7)" /* <U2466> CIRCLED DIGIT SEVEN */
"\x2467" "(8)" /* <U2467> CIRCLED DIGIT EIGHT */
"\x2468" "(9)" /* <U2468> CIRCLED DIGIT NINE */
"\x2469" "(10)" /* <U2469> CIRCLED NUMBER TEN */
"\x246a" "(11)" /* <U246A> CIRCLED NUMBER ELEVEN */
"\x246b" "(12)" /* <U246B> CIRCLED NUMBER TWELVE */
"\x246c" "(13)" /* <U246C> CIRCLED NUMBER THIRTEEN */
"\x246d" "(14)" /* <U246D> CIRCLED NUMBER FOURTEEN */
"\x246e" "(15)" /* <U246E> CIRCLED NUMBER FIFTEEN */
"\x246f" "(16)" /* <U246F> CIRCLED NUMBER SIXTEEN */
"\x2470" "(17)" /* <U2470> CIRCLED NUMBER SEVENTEEN */
"\x2471" "(18)" /* <U2471> CIRCLED NUMBER EIGHTEEN */
"\x2472" "(19)" /* <U2472> CIRCLED NUMBER NINETEEN */
"\x2473" "(20)" /* <U2473> CIRCLED NUMBER TWENTY */
"\x2474" "(1)" /* <U2474> PARENTHESIZED DIGIT ONE */
"\x2475" "(2)" /* <U2475> PARENTHESIZED DIGIT TWO */
"\x2476" "(3)" /* <U2476> PARENTHESIZED DIGIT THREE */
"\x2477" "(4)" /* <U2477> PARENTHESIZED DIGIT FOUR */
"\x2478" "(5)" /* <U2478> PARENTHESIZED DIGIT FIVE */
"\x2479" "(6)" /* <U2479> PARENTHESIZED DIGIT SIX */
"\x247a" "(7)" /* <U247A> PARENTHESIZED DIGIT SEVEN */
"\x247b" "(8)" /* <U247B> PARENTHESIZED DIGIT EIGHT */
"\x247c" "(9)" /* <U247C> PARENTHESIZED DIGIT NINE */
"\x247d" "(10)" /* <U247D> PARENTHESIZED NUMBER TEN */
"\x247e" "(11)" /* <U247E> PARENTHESIZED NUMBER ELEVEN */
"\x247f" "(12)" /* <U247F> PARENTHESIZED NUMBER TWELVE */
"\x2480" "(13)" /* <U2480> PARENTHESIZED NUMBER THIRTEEN */
"\x2481" "(14)" /* <U2481> PARENTHESIZED NUMBER FOURTEEN */
"\x2482" "(15)" /* <U2482> PARENTHESIZED NUMBER FIFTEEN */
"\x2483" "(16)" /* <U2483> PARENTHESIZED NUMBER SIXTEEN */
"\x2484" "(17)" /* <U2484> PARENTHESIZED NUMBER SEVENTEEN */
"\x2485" "(18)" /* <U2485> PARENTHESIZED NUMBER EIGHTEEN */
"\x2486" "(19)" /* <U2486> PARENTHESIZED NUMBER NINETEEN */
"\x2487" "(20)" /* <U2487> PARENTHESIZED NUMBER TWENTY */
"\x2488" "1." /* <U2488> DIGIT ONE FULL STOP */
"\x2489" "2." /* <U2489> DIGIT TWO FULL STOP */
"\x248a" "3." /* <U248A> DIGIT THREE FULL STOP */
"\x248b" "4." /* <U248B> DIGIT FOUR FULL STOP */
"\x248c" "5." /* <U248C> DIGIT FIVE FULL STOP */
"\x248d" "6." /* <U248D> DIGIT SIX FULL STOP */
"\x248e" "7." /* <U248E> DIGIT SEVEN FULL STOP */
"\x248f" "8." /* <U248F> DIGIT EIGHT FULL STOP */
"\x2490" "9." /* <U2490> DIGIT NINE FULL STOP */
"\x2491" "10." /* <U2491> NUMBER TEN FULL STOP */
"\x2492" "11." /* <U2492> NUMBER ELEVEN FULL STOP */
"\x2493" "12." /* <U2493> NUMBER TWELVE FULL STOP */
"\x2494" "13." /* <U2494> NUMBER THIRTEEN FULL STOP */
"\x2495" "14." /* <U2495> NUMBER FOURTEEN FULL STOP */
"\x2496" "15." /* <U2496> NUMBER FIFTEEN FULL STOP */
"\x2497" "16." /* <U2497> NUMBER SIXTEEN FULL STOP */
"\x2498" "17." /* <U2498> NUMBER SEVENTEEN FULL STOP */
"\x2499" "18." /* <U2499> NUMBER EIGHTEEN FULL STOP */
"\x249a" "19." /* <U249A> NUMBER NINETEEN FULL STOP */
"\x249b" "20." /* <U249B> NUMBER TWENTY FULL STOP */
"\x249c" "(a)" /* <U249C> PARENTHESIZED LATIN SMALL LETTER A */
"\x249d" "(b)" /* <U249D> PARENTHESIZED LATIN SMALL LETTER B */
"\x249e" "(c)" /* <U249E> PARENTHESIZED LATIN SMALL LETTER C */
"\x249f" "(d)" /* <U249F> PARENTHESIZED LATIN SMALL LETTER D */
"\x24a0" "(e)" /* <U24A0> PARENTHESIZED LATIN SMALL LETTER E */
"\x24a1" "(f)" /* <U24A1> PARENTHESIZED LATIN SMALL LETTER F */
"\x24a2" "(g)" /* <U24A2> PARENTHESIZED LATIN SMALL LETTER G */
"\x24a3" "(h)" /* <U24A3> PARENTHESIZED LATIN SMALL LETTER H */
"\x24a4" "(i)" /* <U24A4> PARENTHESIZED LATIN SMALL LETTER I */
"\x24a5" "(j)" /* <U24A5> PARENTHESIZED LATIN SMALL LETTER J */
"\x24a6" "(k)" /* <U24A6> PARENTHESIZED LATIN SMALL LETTER K */
"\x24a7" "(l)" /* <U24A7> PARENTHESIZED LATIN SMALL LETTER L */
"\x24a8" "(m)" /* <U24A8> PARENTHESIZED LATIN SMALL LETTER M */
"\x24a9" "(n)" /* <U24A9> PARENTHESIZED LATIN SMALL LETTER N */
"\x24aa" "(o)" /* <U24AA> PARENTHESIZED LATIN SMALL LETTER O */
"\x24ab" "(p)" /* <U24AB> PARENTHESIZED LATIN SMALL LETTER P */
"\x24ac" "(q)" /* <U24AC> PARENTHESIZED LATIN SMALL LETTER Q */
"\x24ad" "(r)" /* <U24AD> PARENTHESIZED LATIN SMALL LETTER R */
"\x24ae" "(s)" /* <U24AE> PARENTHESIZED LATIN SMALL LETTER S */
"\x24af" "(t)" /* <U24AF> PARENTHESIZED LATIN SMALL LETTER T */
"\x24b0" "(u)" /* <U24B0> PARENTHESIZED LATIN SMALL LETTER U */
"\x24b1" "(v)" /* <U24B1> PARENTHESIZED LATIN SMALL LETTER V */
"\x24b2" "(w)" /* <U24B2> PARENTHESIZED LATIN SMALL LETTER W */
"\x24b3" "(x)" /* <U24B3> PARENTHESIZED LATIN SMALL LETTER X */
"\x24b4" "(y)" /* <U24B4> PARENTHESIZED LATIN SMALL LETTER Y */
"\x24b5" "(z)" /* <U24B5> PARENTHESIZED LATIN SMALL LETTER Z */
"\x24b6" "(A)" /* <U24B6> CIRCLED LATIN CAPITAL LETTER A */
"\x24b7" "(B)" /* <U24B7> CIRCLED LATIN CAPITAL LETTER B */
"\x24b8" "(C)" /* <U24B8> CIRCLED LATIN CAPITAL LETTER C */
"\x24b9" "(D)" /* <U24B9> CIRCLED LATIN CAPITAL LETTER D */
"\x24ba" "(E)" /* <U24BA> CIRCLED LATIN CAPITAL LETTER E */
"\x24bb" "(F)" /* <U24BB> CIRCLED LATIN CAPITAL LETTER F */
"\x24bc" "(G)" /* <U24BC> CIRCLED LATIN CAPITAL LETTER G */
"\x24bd" "(H)" /* <U24BD> CIRCLED LATIN CAPITAL LETTER H */
"\x24be" "(I)" /* <U24BE> CIRCLED LATIN CAPITAL LETTER I */
"\x24bf" "(J)" /* <U24BF> CIRCLED LATIN CAPITAL LETTER J */
"\x24c0" "(K)" /* <U24C0> CIRCLED LATIN CAPITAL LETTER K */
"\x24c1" "(L)" /* <U24C1> CIRCLED LATIN CAPITAL LETTER L */
"\x24c2" "(M)" /* <U24C2> CIRCLED LATIN CAPITAL LETTER M */
"\x24c3" "(N)" /* <U24C3> CIRCLED LATIN CAPITAL LETTER N */
"\x24c4" "(O)" /* <U24C4> CIRCLED LATIN CAPITAL LETTER O */
"\x24c5" "(P)" /* <U24C5> CIRCLED LATIN CAPITAL LETTER P */
"\x24c6" "(Q)" /* <U24C6> CIRCLED LATIN CAPITAL LETTER Q */
"\x24c7" "(R)" /* <U24C7> CIRCLED LATIN CAPITAL LETTER R */
"\x24c8" "(S)" /* <U24C8> CIRCLED LATIN CAPITAL LETTER S */
"\x24c9" "(T)" /* <U24C9> CIRCLED LATIN CAPITAL LETTER T */
"\x24ca" "(U)" /* <U24CA> CIRCLED LATIN CAPITAL LETTER U */
"\x24cb" "(V)" /* <U24CB> CIRCLED LATIN CAPITAL LETTER V */
"\x24cc" "(W)" /* <U24CC> CIRCLED LATIN CAPITAL LETTER W */
"\x24cd" "(X)" /* <U24CD> CIRCLED LATIN CAPITAL LETTER X */
"\x24ce" "(Y)" /* <U24CE> CIRCLED LATIN CAPITAL LETTER Y */
"\x24cf" "(Z)" /* <U24CF> CIRCLED LATIN CAPITAL LETTER Z */
"\x24d0" "(a)" /* <U24D0> CIRCLED LATIN SMALL LETTER A */
"\x24d1" "(b)" /* <U24D1> CIRCLED LATIN SMALL LETTER B */
"\x24d2" "(c)" /* <U24D2> CIRCLED LATIN SMALL LETTER C */
"\x24d3" "(d)" /* <U24D3> CIRCLED LATIN SMALL LETTER D */
"\x24d4" "(e)" /* <U24D4> CIRCLED LATIN SMALL LETTER E */
"\x24d5" "(f)" /* <U24D5> CIRCLED LATIN SMALL LETTER F */
"\x24d6" "(g)" /* <U24D6> CIRCLED LATIN SMALL LETTER G */
"\x24d7" "(h)" /* <U24D7> CIRCLED LATIN SMALL LETTER H */
"\x24d8" "(i)" /* <U24D8> CIRCLED LATIN SMALL LETTER I */
"\x24d9" "(j)" /* <U24D9> CIRCLED LATIN SMALL LETTER J */
"\x24da" "(k)" /* <U24DA> CIRCLED LATIN SMALL LETTER K */
"\x24db" "(l)" /* <U24DB> CIRCLED LATIN SMALL LETTER L */
"\x24dc" "(m)" /* <U24DC> CIRCLED LATIN SMALL LETTER M */
"\x24dd" "(n)" /* <U24DD> CIRCLED LATIN SMALL LETTER N */
"\x24de" "(o)" /* <U24DE> CIRCLED LATIN SMALL LETTER O */
"\x24df" "(p)" /* <U24DF> CIRCLED LATIN SMALL LETTER P */
"\x24e0" "(q)" /* <U24E0> CIRCLED LATIN SMALL LETTER Q */
"\x24e1" "(r)" /* <U24E1> CIRCLED LATIN SMALL LETTER R */
"\x24e2" "(s)" /* <U24E2> CIRCLED LATIN SMALL LETTER S */
"\x24e3" "(t)" /* <U24E3> CIRCLED LATIN SMALL LETTER T */
"\x24e4" "(u)" /* <U24E4> CIRCLED LATIN SMALL LETTER U */
"\x24e5" "(v)" /* <U24E5> CIRCLED LATIN SMALL LETTER V */
"\x24e6" "(w)" /* <U24E6> CIRCLED LATIN SMALL LETTER W */
"\x24e7" "(x)" /* <U24E7> CIRCLED LATIN SMALL LETTER X */
"\x24e8" "(y)" /* <U24E8> CIRCLED LATIN SMALL LETTER Y */
"\x24e9" "(z)" /* <U24E9> CIRCLED LATIN SMALL LETTER Z */
"\x24ea" "(0)" /* <U24EA> CIRCLED DIGIT ZERO */
"\x2500" "-" /* <U2500> BOX DRAWINGS LIGHT HORIZONTAL */
"\x2502" "|" /* <U2502> BOX DRAWINGS LIGHT VERTICAL */
"\x250c" "+" /* <U250C> BOX DRAWINGS LIGHT DOWN AND RIGHT */
"\x2510" "+" /* <U2510> BOX DRAWINGS LIGHT DOWN AND LEFT */
"\x2514" "+" /* <U2514> BOX DRAWINGS LIGHT UP AND RIGHT */
"\x2518" "+" /* <U2518> BOX DRAWINGS LIGHT UP AND LEFT */
"\x251c" "+" /* <U251C> BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
"\x2524" "+" /* <U2524> BOX DRAWINGS LIGHT VERTICAL AND LEFT */
"\x252c" "+" /* <U252C> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
"\x2534" "+" /* <U2534> BOX DRAWINGS LIGHT UP AND HORIZONTAL */
"\x253c" "+" /* <U253C> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
"\x3000" " " /* <U3000> IDEOGRAPHIC SPACE */
"\xfb00" "ff" /* <UFB00> LATIN SMALL LIGATURE FF */
"\xfb01" "fi" /* <UFB01> LATIN SMALL LIGATURE FI */
"\xfb02" "fl" /* <UFB02> LATIN SMALL LIGATURE FL */
"\xfb03" "ffi" /* <UFB03> LATIN SMALL LIGATURE FFI */
"\xfb04" "ffl" /* <UFB04> LATIN SMALL LIGATURE FFL */
"\xfb06" "st" /* <UFB06> LATIN SMALL LIGATURE ST */
"\xfb29" "+" /* <UFB29> HEBREW LETTER ALTERNATIVE PLUS SIGN */
"\xfe4d" "_" /* <UFE4D> DASHED LOW LINE */
"\xfe4e" "_" /* <UFE4E> CENTRELINE LOW LINE */
"\xfe4f" "_" /* <UFE4F> WAVY LOW LINE */
"\xfe50" "," /* <UFE50> SMALL COMMA */
"\xfe52" "." /* <UFE52> SMALL FULL STOP */
"\xfe54" ";" /* <UFE54> SMALL SEMICOLON */
"\xfe55" ":" /* <UFE55> SMALL COLON */
"\xfe56" "?" /* <UFE56> SMALL QUESTION MARK */
"\xfe57" "!" /* <UFE57> SMALL EXCLAMATION MARK */
"\xfe59" "(" /* <UFE59> SMALL LEFT PARENTHESIS */
"\xfe5a" ")" /* <UFE5A> SMALL RIGHT PARENTHESIS */
"\xfe5b" "{" /* <UFE5B> SMALL LEFT CURLY BRACKET */
"\xfe5c" "}" /* <UFE5C> SMALL RIGHT CURLY BRACKET */
"\xfe5f" "#" /* <UFE5F> SMALL NUMBER SIGN */
"\xfe60" "&" /* <UFE60> SMALL AMPERSAND */
"\xfe61" "*" /* <UFE61> SMALL ASTERISK */
"\xfe62" "+" /* <UFE62> SMALL PLUS SIGN */
"\xfe63" "-" /* <UFE63> SMALL HYPHEN-MINUS */
"\xfe64" "<" /* <UFE64> SMALL LESS-THAN SIGN */
"\xfe65" ">" /* <UFE65> SMALL GREATER-THAN SIGN */
"\xfe66" "=" /* <UFE66> SMALL EQUALS SIGN */
"\xfe68" "\\" /* <UFE68> SMALL REVERSE SOLIDUS */
"\xfe69" "$" /* <UFE69> SMALL DOLLAR SIGN */
"\xfe6a" "%" /* <UFE6A> SMALL PERCENT SIGN */
"\xfe6b" "@" /* <UFE6B> SMALL COMMERCIAL AT */
"\xff01" "!" /* <UFF01> FULLWIDTH EXCLAMATION MARK */
"\xff02" "\"" /* <UFF02> FULLWIDTH QUOTATION MARK */
"\xff03" "#" /* <UFF03> FULLWIDTH NUMBER SIGN */
"\xff04" "$" /* <UFF04> FULLWIDTH DOLLAR SIGN */
"\xff05" "%" /* <UFF05> FULLWIDTH PERCENT SIGN */
"\xff06" "&" /* <UFF06> FULLWIDTH AMPERSAND */
"\xff07" "'" /* <UFF07> FULLWIDTH APOSTROPHE */
"\xff08" "(" /* <UFF08> FULLWIDTH LEFT PARENTHESIS */
"\xff09" ")" /* <UFF09> FULLWIDTH RIGHT PARENTHESIS */
"\xff0a" "*" /* <UFF0A> FULLWIDTH ASTERISK */
"\xff0b" "+" /* <UFF0B> FULLWIDTH PLUS SIGN */
"\xff0c" "," /* <UFF0C> FULLWIDTH COMMA */
"\xff0d" "-" /* <UFF0D> FULLWIDTH HYPHEN-MINUS */
"\xff0e" "." /* <UFF0E> FULLWIDTH FULL STOP */
"\xff0f" "/" /* <UFF0F> FULLWIDTH SOLIDUS */
"\xff10" "0" /* <UFF10> FULLWIDTH DIGIT ZERO */
"\xff11" "1" /* <UFF11> FULLWIDTH DIGIT ONE */
"\xff12" "2" /* <UFF12> FULLWIDTH DIGIT TWO */
"\xff13" "3" /* <UFF13> FULLWIDTH DIGIT THREE */
"\xff14" "4" /* <UFF14> FULLWIDTH DIGIT FOUR */
"\xff15" "5" /* <UFF15> FULLWIDTH DIGIT FIVE */
"\xff16" "6" /* <UFF16> FULLWIDTH DIGIT SIX */
"\xff17" "7" /* <UFF17> FULLWIDTH DIGIT SEVEN */
"\xff18" "8" /* <UFF18> FULLWIDTH DIGIT EIGHT */
"\xff19" "9" /* <UFF19> FULLWIDTH DIGIT NINE */
"\xff1a" ":" /* <UFF1A> FULLWIDTH COLON */
"\xff1b" ";" /* <UFF1B> FULLWIDTH SEMICOLON */
"\xff1c" "<" /* <UFF1C> FULLWIDTH LESS-THAN SIGN */
"\xff1d" "=" /* <UFF1D> FULLWIDTH EQUALS SIGN */
"\xff1e" ">" /* <UFF1E> FULLWIDTH GREATER-THAN SIGN */
"\xff1f" "?" /* <UFF1F> FULLWIDTH QUESTION MARK */
"\xff20" "@" /* <UFF20> FULLWIDTH COMMERCIAL AT */
"\xff21" "A" /* <UFF21> FULLWIDTH LATIN CAPITAL LETTER A */
"\xff22" "B" /* <UFF22> FULLWIDTH LATIN CAPITAL LETTER B */
"\xff23" "C" /* <UFF23> FULLWIDTH LATIN CAPITAL LETTER C */
"\xff24" "D" /* <UFF24> FULLWIDTH LATIN CAPITAL LETTER D */
"\xff25" "E" /* <UFF25> FULLWIDTH LATIN CAPITAL LETTER E */
"\xff26" "F" /* <UFF26> FULLWIDTH LATIN CAPITAL LETTER F */
"\xff27" "G" /* <UFF27> FULLWIDTH LATIN CAPITAL LETTER G */
"\xff28" "H" /* <UFF28> FULLWIDTH LATIN CAPITAL LETTER H */
"\xff29" "I" /* <UFF29> FULLWIDTH LATIN CAPITAL LETTER I */
"\xff2a" "J" /* <UFF2A> FULLWIDTH LATIN CAPITAL LETTER J */
"\xff2b" "K" /* <UFF2B> FULLWIDTH LATIN CAPITAL LETTER K */
"\xff2c" "L" /* <UFF2C> FULLWIDTH LATIN CAPITAL LETTER L */
"\xff2d" "M" /* <UFF2D> FULLWIDTH LATIN CAPITAL LETTER M */
"\xff2e" "N" /* <UFF2E> FULLWIDTH LATIN CAPITAL LETTER N */
"\xff2f" "O" /* <UFF2F> FULLWIDTH LATIN CAPITAL LETTER O */
"\xff30" "P" /* <UFF30> FULLWIDTH LATIN CAPITAL LETTER P */
"\xff31" "Q" /* <UFF31> FULLWIDTH LATIN CAPITAL LETTER Q */
"\xff32" "R" /* <UFF32> FULLWIDTH LATIN CAPITAL LETTER R */
"\xff33" "S" /* <UFF33> FULLWIDTH LATIN CAPITAL LETTER S */
"\xff34" "T" /* <UFF34> FULLWIDTH LATIN CAPITAL LETTER T */
"\xff35" "U" /* <UFF35> FULLWIDTH LATIN CAPITAL LETTER U */
"\xff36" "V" /* <UFF36> FULLWIDTH LATIN CAPITAL LETTER V */
"\xff37" "W" /* <UFF37> FULLWIDTH LATIN CAPITAL LETTER W */
"\xff38" "X" /* <UFF38> FULLWIDTH LATIN CAPITAL LETTER X */
"\xff39" "Y" /* <UFF39> FULLWIDTH LATIN CAPITAL LETTER Y */
"\xff3a" "Z" /* <UFF3A> FULLWIDTH LATIN CAPITAL LETTER Z */
"\xff3b" "[" /* <UFF3B> FULLWIDTH LEFT SQUARE BRACKET */
"\xff3c" "\\" /* <UFF3C> FULLWIDTH REVERSE SOLIDUS */
"\xff3d" "]" /* <UFF3D> FULLWIDTH RIGHT SQUARE BRACKET */
"\xff3e" "^" /* <UFF3E> FULLWIDTH CIRCUMFLEX ACCENT */
"\xff3f" "_" /* <UFF3F> FULLWIDTH LOW LINE */
"\xff40" "`" /* <UFF40> FULLWIDTH GRAVE ACCENT */
"\xff41" "a" /* <UFF41> FULLWIDTH LATIN SMALL LETTER A */
"\xff42" "b" /* <UFF42> FULLWIDTH LATIN SMALL LETTER B */
"\xff43" "c" /* <UFF43> FULLWIDTH LATIN SMALL LETTER C */
"\xff44" "d" /* <UFF44> FULLWIDTH LATIN SMALL LETTER D */
"\xff45" "e" /* <UFF45> FULLWIDTH LATIN SMALL LETTER E */
"\xff46" "f" /* <UFF46> FULLWIDTH LATIN SMALL LETTER F */
"\xff47" "g" /* <UFF47> FULLWIDTH LATIN SMALL LETTER G */
"\xff48" "h" /* <UFF48> FULLWIDTH LATIN SMALL LETTER H */
"\xff49" "i" /* <UFF49> FULLWIDTH LATIN SMALL LETTER I */
"\xff4a" "j" /* <UFF4A> FULLWIDTH LATIN SMALL LETTER J */
"\xff4b" "k" /* <UFF4B> FULLWIDTH LATIN SMALL LETTER K */
"\xff4c" "l" /* <UFF4C> FULLWIDTH LATIN SMALL LETTER L */
"\xff4d" "m" /* <UFF4D> FULLWIDTH LATIN SMALL LETTER M */
"\xff4e" "n" /* <UFF4E> FULLWIDTH LATIN SMALL LETTER N */
"\xff4f" "o" /* <UFF4F> FULLWIDTH LATIN SMALL LETTER O */
"\xff50" "p" /* <UFF50> FULLWIDTH LATIN SMALL LETTER P */
"\xff51" "q" /* <UFF51> FULLWIDTH LATIN SMALL LETTER Q */
"\xff52" "r" /* <UFF52> FULLWIDTH LATIN SMALL LETTER R */
"\xff53" "s" /* <UFF53> FULLWIDTH LATIN SMALL LETTER S */
"\xff54" "t" /* <UFF54> FULLWIDTH LATIN SMALL LETTER T */
"\xff55" "u" /* <UFF55> FULLWIDTH LATIN SMALL LETTER U */
"\xff56" "v" /* <UFF56> FULLWIDTH LATIN SMALL LETTER V */
"\xff57" "w" /* <UFF57> FULLWIDTH LATIN SMALL LETTER W */
"\xff58" "x" /* <UFF58> FULLWIDTH LATIN SMALL LETTER X */
"\xff59" "y" /* <UFF59> FULLWIDTH LATIN SMALL LETTER Y */
"\xff5a" "z" /* <UFF5A> FULLWIDTH LATIN SMALL LETTER Z */
"\xff5b" "{" /* <UFF5B> FULLWIDTH LEFT CURLY BRACKET */
"\xff5c" "|" /* <UFF5C> FULLWIDTH VERTICAL LINE */
"\xff5d" "}" /* <UFF5D> FULLWIDTH RIGHT CURLY BRACKET */
"\xff5e" "~" /* <UFF5E> FULLWIDTH TILDE */

View File

@ -134,7 +134,7 @@ for ($cnt = 0; $cnt <= $#tos; ++$cnt) {
printf(" ");
++$col;
}
printf("L\"$tos[$cnt]\\0\"");
printf("%s", "L\"$tos[$cnt]\\0\"");
$col += length($tos[$cnt]) + 5;
}
printf(";\n");

View File

@ -841,7 +841,7 @@ The value of this variable is a pointer to the function that
function to look like @code{malloc}; that is, like:
@smallexample
void *@var{function} (size_t @var{size}, void *@var{caller})
void *@var{function} (size_t @var{size}, const void *@var{caller})
@end smallexample
The value of @var{caller} is the return address found on the stack when
@ -857,7 +857,7 @@ uses whenever it is called. You should define this function to look
like @code{realloc}; that is, like:
@smallexample
void *@var{function} (void *@var{ptr}, size_t @var{size}, void *@var{caller})
void *@var{function} (void *@var{ptr}, size_t @var{size}, const void *@var{caller})
@end smallexample
The value of @var{caller} is the return address found on the stack when
@ -873,7 +873,7 @@ uses whenever it is called. You should define this function to look
like @code{free}; that is, like:
@smallexample
void @var{function} (void *@var{ptr}, void *@var{caller})
void @var{function} (void *@var{ptr}, const void *@var{caller})
@end smallexample
The value of @var{caller} is the return address found on the stack when
@ -889,8 +889,12 @@ uses whenever it is called. You should define this function to look
like @code{memalign}; that is, like:
@smallexample
void *@var{function} (size_t @var{size}, size_t @var{alignment})
void *@var{function} (size_t @var{size}, size_t @var{alignment}, const void *@var{caller})
@end smallexample
The value of @var{caller} is the return address found on the stack when
the @code{memalign} function was called. This value allows you to trace the
memory consumption of the program.
@end defvar
You must make sure that the function you install as a hook for one of
@ -936,14 +940,13 @@ assume here that @code{realloc} and @code{memalign} are not used in our
program.
@smallexample
/* Global variables used to hold underlaying hook values. */
static void *(*old_malloc_hook) (size_t);
static void (*old_free_hook) (void*);
/* Prototypes for __malloc_hook, __free_hook */
#include <malloc.h>
/* Prototypes for our hooks. */
static void *my_init_hook (void);
static void *my_malloc_hook (size_t);
static void my_free_hook (void*);
static void *my_malloc_hook (size_t, const void *);
static void my_free_hook (void*, const void *);
/* Override initializing hook from the C library. */
void (*__malloc_initialize_hook) (void) = my_init_hook;
@ -958,7 +961,7 @@ my_init_hook (void)
@}
static void *
my_malloc_hook (size_t size)
my_malloc_hook (size_t size, const void *caller)
@{
void *result;
/* Restore all old hooks */
@ -978,7 +981,7 @@ my_malloc_hook (size_t size)
@}
static void *
my_free_hook (void *ptr)
my_free_hook (void *ptr, const void *caller)
@{
/* Restore all old hooks */
__malloc_hook = old_malloc_hook;
@ -1109,16 +1112,16 @@ Tell @code{malloc} to perform occasional consistency checks on
dynamically allocated memory, and to call @var{abortfn} when an
inconsistency is found. @xref{Heap Consistency Checking}.
@item void *(*__malloc_hook) (size_t @var{size}, void *@var{caller})
@item void *(*__malloc_hook) (size_t @var{size}, const void *@var{caller})
A pointer to a function that @code{malloc} uses whenever it is called.
@item void *(*__realloc_hook) (void *@var{ptr}, size_t @var{size}, void *@var{caller})
@item void *(*__realloc_hook) (void *@var{ptr}, size_t @var{size}, const void *@var{caller})
A pointer to a function that @code{realloc} uses whenever it is called.
@item void (*__free_hook) (void *@var{ptr}, void *@var{caller})
@item void (*__free_hook) (void *@var{ptr}, const void *@var{caller})
A pointer to a function that @code{free} uses whenever it is called.
@item void (*__memalign_hook) (size_t @var{size}, size_t @var{alignment})
@item void (*__memalign_hook) (size_t @var{size}, size_t @var{alignment}, const void *@var{caller})
A pointer to a function that @code{memalign} uses whenever it is called.
@item struct mallinfo mallinfo (void)