diff --git a/include/wine/unicode.h b/include/wine/unicode.h index 198b00b2fd0..1240f8e24bf 100644 --- a/include/wine/unicode.h +++ b/include/wine/unicode.h @@ -53,6 +53,7 @@ struct sbcs_table { struct cp_info info; const WCHAR *cp2uni; /* code page -> Unicode map */ + const WCHAR *cp2uni_glyphs; /* code page -> Unicode map with glyph chars */ const unsigned char *uni2cp_low; /* Unicode -> code page map */ const unsigned short *uni2cp_high; }; diff --git a/libs/wine/c_037.c b/libs/wine/c_037.c index be5b8bb5e28..0b7d90008a7 100644 --- a/libs/wine/c_037.c +++ b/libs/wine/c_037.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_037 = { { 37, 1, 0x003f, 0x003f, "IBM EBCDIC US Canada" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_10000.c b/libs/wine/c_10000.c index d43ca98840a..5d8df056886 100644 --- a/libs/wine/c_10000.c +++ b/libs/wine/c_10000.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_10000 = { { 10000, 1, 0x003f, 0x003f, "Mac Roman" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_10006.c b/libs/wine/c_10006.c index 6ac0b20f8b7..64a263eb811 100644 --- a/libs/wine/c_10006.c +++ b/libs/wine/c_10006.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_10006 = { { 10006, 1, 0x003f, 0x003f, "Mac Greek" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_10007.c b/libs/wine/c_10007.c index b58d56210d0..e41f58e811b 100644 --- a/libs/wine/c_10007.c +++ b/libs/wine/c_10007.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_10007 = { { 10007, 1, 0x003f, 0x003f, "Mac Cyrillic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_10029.c b/libs/wine/c_10029.c index 6946df11bf0..22e24ec052f 100644 --- a/libs/wine/c_10029.c +++ b/libs/wine/c_10029.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_10029 = { { 10029, 1, 0x003f, 0x003f, "Mac Latin 2" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1006.c b/libs/wine/c_1006.c index 4584ca24d66..1fb61f648e5 100644 --- a/libs/wine/c_1006.c +++ b/libs/wine/c_1006.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_1006 = { { 1006, 1, 0x003f, 0x003f, "IBM Arabic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_10079.c b/libs/wine/c_10079.c index 0290253c3bc..c3e28b62081 100644 --- a/libs/wine/c_10079.c +++ b/libs/wine/c_10079.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_10079 = { { 10079, 1, 0x003f, 0x003f, "Mac Icelandic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_10081.c b/libs/wine/c_10081.c index 6351e59e68b..683c95a6d4b 100644 --- a/libs/wine/c_10081.c +++ b/libs/wine/c_10081.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_10081 = { { 10081, 1, 0x003f, 0x003f, "Mac Turkish" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1026.c b/libs/wine/c_1026.c index 2ed67c03df0..cabff2f2c98 100644 --- a/libs/wine/c_1026.c +++ b/libs/wine/c_1026.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_1026 = { { 1026, 1, 0x003f, 0x003f, "IBM EBCDIC Latin 5 Turkish" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1250.c b/libs/wine/c_1250.c index 7df9ccf1a37..656619d2869 100644 --- a/libs/wine/c_1250.c +++ b/libs/wine/c_1250.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_1250 = { { 1250, 1, 0x003f, 0x003f, "ANSI Eastern Europe" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1251.c b/libs/wine/c_1251.c index bb4ede20b3e..7e5ec8801c2 100644 --- a/libs/wine/c_1251.c +++ b/libs/wine/c_1251.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_1251 = { { 1251, 1, 0x003f, 0x003f, "ANSI Cyrillic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1252.c b/libs/wine/c_1252.c index 04a5485a515..a43fb5e676f 100644 --- a/libs/wine/c_1252.c +++ b/libs/wine/c_1252.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_1252 = { { 1252, 1, 0x003f, 0x003f, "ANSI Latin 1" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1253.c b/libs/wine/c_1253.c index 49bc3b9ef29..a83d2dc9cca 100644 --- a/libs/wine/c_1253.c +++ b/libs/wine/c_1253.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_1253 = { { 1253, 1, 0x003f, 0x003f, "ANSI Greek" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1254.c b/libs/wine/c_1254.c index 5d30611f12c..cfabe49fc28 100644 --- a/libs/wine/c_1254.c +++ b/libs/wine/c_1254.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_1254 = { { 1254, 1, 0x003f, 0x003f, "ANSI Turkish" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1255.c b/libs/wine/c_1255.c index 31f2d98623b..0bdf0fd5efe 100644 --- a/libs/wine/c_1255.c +++ b/libs/wine/c_1255.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_1255 = { { 1255, 1, 0x003f, 0x003f, "ANSI Hebrew" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1256.c b/libs/wine/c_1256.c index 13a4569ac07..1e2f39dfab3 100644 --- a/libs/wine/c_1256.c +++ b/libs/wine/c_1256.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_1256 = { { 1256, 1, 0x003f, 0x003f, "ANSI Arabic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1257.c b/libs/wine/c_1257.c index a71e6281ae0..3fb0022872b 100644 --- a/libs/wine/c_1257.c +++ b/libs/wine/c_1257.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_1257 = { { 1257, 1, 0x003f, 0x003f, "ANSI Baltic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_1258.c b/libs/wine/c_1258.c index 791f1fbbcc0..8c1fd6f5020 100644 --- a/libs/wine/c_1258.c +++ b/libs/wine/c_1258.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_1258 = { { 1258, 1, 0x003f, 0x003f, "ANSI/OEM Viet Nam" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_20127.c b/libs/wine/c_20127.c index ae9e4c81097..843830f4aaf 100644 --- a/libs/wine/c_20127.c +++ b/libs/wine/c_20127.c @@ -1,5 +1,5 @@ /* code page 20127 (US-ASCII (7bit)) */ -/* DO NOT EDIT!! */ +/* Automatically generated; DO NOT EDIT!! */ #include "wine/unicode.h" @@ -677,6 +677,7 @@ const struct sbcs_table cptable_20127 = { { 20127, 1, 0x003f, 0x003f, "US-ASCII (7bit)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_20866.c b/libs/wine/c_20866.c index c0d5bdc6b85..d58953e9db4 100644 --- a/libs/wine/c_20866.c +++ b/libs/wine/c_20866.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_20866 = { { 20866, 1, 0x003f, 0x003f, "Russian KOI8" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_21866.c b/libs/wine/c_21866.c index 7fdb7f3b87f..e2fbc3e0341 100644 --- a/libs/wine/c_21866.c +++ b/libs/wine/c_21866.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_21866 = { { 21866, 1, 0x003f, 0x003f, "Ukrainian KOI8" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28591.c b/libs/wine/c_28591.c index d6dff0dfdff..c32884ce427 100644 --- a/libs/wine/c_28591.c +++ b/libs/wine/c_28591.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28591 = { { 28591, 1, 0x003f, 0x003f, "ISO 8859-1 Latin 1" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28592.c b/libs/wine/c_28592.c index 88328d14096..05b945d58c8 100644 --- a/libs/wine/c_28592.c +++ b/libs/wine/c_28592.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28592 = { { 28592, 1, 0x003f, 0x003f, "ISO 8859-2 Latin 2 (East European)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28593.c b/libs/wine/c_28593.c index 2bc395892eb..052bec40d61 100644 --- a/libs/wine/c_28593.c +++ b/libs/wine/c_28593.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28593 = { { 28593, 1, 0x003f, 0x003f, "ISO 8859-3 Latin 3 (South European)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28594.c b/libs/wine/c_28594.c index c069f47fcba..95507110898 100644 --- a/libs/wine/c_28594.c +++ b/libs/wine/c_28594.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28594 = { { 28594, 1, 0x003f, 0x003f, "ISO 8859-4 Latin 4 (Baltic old)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28595.c b/libs/wine/c_28595.c index e61da41e455..2a24afbeb2b 100644 --- a/libs/wine/c_28595.c +++ b/libs/wine/c_28595.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_28595 = { { 28595, 1, 0x003f, 0x003f, "ISO 8859-5 Cyrillic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28596.c b/libs/wine/c_28596.c index 19c493b94eb..1722caa8a11 100644 --- a/libs/wine/c_28596.c +++ b/libs/wine/c_28596.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_28596 = { { 28596, 1, 0x003f, 0x003f, "ISO 8859-6 Arabic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28597.c b/libs/wine/c_28597.c index f72efb24335..c1cc1984420 100644 --- a/libs/wine/c_28597.c +++ b/libs/wine/c_28597.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28597 = { { 28597, 1, 0x003f, 0x003f, "ISO 8859-7 Greek" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28598.c b/libs/wine/c_28598.c index 3bd0cf98d94..2b901e1777d 100644 --- a/libs/wine/c_28598.c +++ b/libs/wine/c_28598.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_28598 = { { 28598, 1, 0x003f, 0x003f, "ISO 8859-8 Hebrew" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28599.c b/libs/wine/c_28599.c index e4cc2580182..42ea3d6ed34 100644 --- a/libs/wine/c_28599.c +++ b/libs/wine/c_28599.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28599 = { { 28599, 1, 0x003f, 0x003f, "ISO 8859-9 Latin 5 (Turkish)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28600.c b/libs/wine/c_28600.c index 0ef4edf29a3..fe2dc9e6a80 100644 --- a/libs/wine/c_28600.c +++ b/libs/wine/c_28600.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28600 = { { 28600, 1, 0x003f, 0x003f, "ISO 8859-10 Latin 6 (Nordic)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28603.c b/libs/wine/c_28603.c index 7229126e36e..30932325528 100644 --- a/libs/wine/c_28603.c +++ b/libs/wine/c_28603.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28603 = { { 28603, 1, 0x003f, 0x003f, "ISO 8859-13 Latin 7 (Baltic)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28604.c b/libs/wine/c_28604.c index e0473b5f52a..0c885c4e4a1 100644 --- a/libs/wine/c_28604.c +++ b/libs/wine/c_28604.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28604 = { { 28604, 1, 0x003f, 0x003f, "ISO 8859-14 Latin 8 (Celtic)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28605.c b/libs/wine/c_28605.c index f870741caff..9d45471b394 100644 --- a/libs/wine/c_28605.c +++ b/libs/wine/c_28605.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28605 = { { 28605, 1, 0x003f, 0x003f, "ISO 8859-15 Latin 9 (Euro)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_28606.c b/libs/wine/c_28606.c index a8d0fffdc0b..5942dff92a1 100644 --- a/libs/wine/c_28606.c +++ b/libs/wine/c_28606.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_28606 = { { 28606, 1, 0x003f, 0x003f, "ISO 8859-16 Latin 10 (Balkan)" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_424.c b/libs/wine/c_424.c index a018e5aa7d2..43967eac514 100644 --- a/libs/wine/c_424.c +++ b/libs/wine/c_424.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_424 = { { 424, 1, 0x003f, 0x003f, "IBM EBCDIC Hebrew" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_437.c b/libs/wine/c_437.c index a91b4424cb4..5fbb440698a 100644 --- a/libs/wine/c_437.c +++ b/libs/wine/c_437.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_437 = { { 437, 1, 0x003f, 0x003f, "OEM United States" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_500.c b/libs/wine/c_500.c index 0fa33c7c1a2..df20eb19711 100644 --- a/libs/wine/c_500.c +++ b/libs/wine/c_500.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_500 = { { 500, 1, 0x003f, 0x003f, "IBM EBCDIC International" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_737.c b/libs/wine/c_737.c index c8c9f82e462..e86bbaeef21 100644 --- a/libs/wine/c_737.c +++ b/libs/wine/c_737.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, 0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, 0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, + 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, + 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, + 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, + 0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, + 0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_737 = { { 737, 1, 0x003f, 0x003f, "OEM Greek 437G" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_775.c b/libs/wine/c_775.c index 1765741c765..4921dd3238a 100644 --- a/libs/wine/c_775.c +++ b/libs/wine/c_775.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144, 0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019, 0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e, + 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x0106, 0x00fc, 0x00e9, 0x0101, 0x00e4, 0x0123, 0x00e5, 0x0107, + 0x0142, 0x0113, 0x0156, 0x0157, 0x012b, 0x0179, 0x00c4, 0x00c5, + 0x00c9, 0x00e6, 0x00c6, 0x014d, 0x00f6, 0x0122, 0x00a2, 0x015a, + 0x015b, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x00a4, + 0x0100, 0x012a, 0x00f3, 0x017b, 0x017c, 0x017a, 0x201d, 0x00a6, + 0x00a9, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x0141, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010c, 0x0118, + 0x0116, 0x2563, 0x2551, 0x2557, 0x255d, 0x012e, 0x0160, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0172, 0x016a, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x017d, + 0x0105, 0x010d, 0x0119, 0x0117, 0x012f, 0x0161, 0x0173, 0x016b, + 0x017e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144, + 0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019, + 0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e, 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_775 = { { 775, 1, 0x003f, 0x003f, "OEM Baltic" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_850.c b/libs/wine/c_850.c index a5bc688e86c..72fa3481c82 100644 --- a/libs/wine/c_850.c +++ b/libs/wine/c_850.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, + 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, + 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, + 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, + 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, + 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_850 = { { 850, 1, 0x003f, 0x003f, "OEM Multilingual Latin 1" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_852.c b/libs/wine/c_852.c index 455732a6698..26ba157143b 100644 --- a/libs/wine/c_852.c +++ b/libs/wine/c_852.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, + 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, + 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, + 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, + 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, + 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, + 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, + 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, + 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, + 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_852 = { { 852, 1, 0x003f, 0x003f, "OEM Slovak Latin 2" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_855.c b/libs/wine/c_855.c index 6cef840aa7b..ca8b91a3783 100644 --- a/libs/wine/c_855.c +++ b/libs/wine/c_855.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, + 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, + 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, + 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, + 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, + 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, + 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, + 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, + 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, + 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, + 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, + 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0 }; @@ -711,6 +744,7 @@ const struct sbcs_table cptable_855 = { { 855, 1, 0x003f, 0x003f, "OEM Cyrillic" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_856.c b/libs/wine/c_856.c index b86d527cde2..1809b82bc6b 100644 --- a/libs/wine/c_856.c +++ b/libs/wine/c_856.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_856 = { { 856, 1, 0x003f, 0x003f, "Hebrew PC" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_857.c b/libs/wine/c_857.c index 782927ea26a..784ca491e12 100644 --- a/libs/wine/c_857.c +++ b/libs/wine/c_857.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x003f, 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x003f, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, + 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, + 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0x003f, 0x00cd, 0x00ce, + 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, + 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x003f, + 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, + 0x00ad, 0x00b1, 0x003f, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_857 = { { 857, 1, 0x003f, 0x003f, "OEM Turkish" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_860.c b/libs/wine/c_860.c index f090561a7fa..23bdd2d17a1 100644 --- a/libs/wine/c_860.c +++ b/libs/wine/c_860.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7, + 0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2, + 0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9, + 0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_860 = { { 860, 1, 0x003f, 0x003f, "OEM Portuguese" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_861.c b/libs/wine/c_861.c index f799726ef24..afa284eff12 100644 --- a/libs/wine/c_861.c +++ b/libs/wine/c_861.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5, + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd, + 0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_861 = { { 861, 1, 0x003f, 0x003f, "OEM Icelandic" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_862.c b/libs/wine/c_862.c index f58a7e5c1fd..2375cfc2b41 100644 --- a/libs/wine/c_862.c +++ b/libs/wine/c_862.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, + 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; @@ -711,6 +744,7 @@ const struct sbcs_table cptable_862 = { { 862, 1, 0x003f, 0x003f, "OEM Hebrew" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_863.c b/libs/wine/c_863.c index f9916d74a87..488fe853221 100644 --- a/libs/wine/c_863.c +++ b/libs/wine/c_863.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7, + 0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9, + 0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192, + 0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af, + 0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_863 = { { 863, 1, 0x003f, 0x003f, "OEM Canadian French" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_864.c b/libs/wine/c_864.c index 852a8cf0af5..29efacabc3d 100644 --- a/libs/wine/c_864.c +++ b/libs/wine/c_864.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_864 = { { 864, 1, 0x003f, 0x003f, "OEM Arabic" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_865.c b/libs/wine/c_865.c index 7233cf7499c..94455503b74 100644 --- a/libs/wine/c_865.c +++ b/libs/wine/c_865.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_865 = { { 865, 1, 0x003f, 0x003f, "OEM Nordic" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_866.c b/libs/wine/c_866.c index b92e117b9bc..3d5ff0e0935 100644 --- a/libs/wine/c_866.c +++ b/libs/wine/c_866.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0 }; @@ -711,6 +744,7 @@ const struct sbcs_table cptable_866 = { { 866, 1, 0x003f, 0x003f, "OEM Russian" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_869.c b/libs/wine/c_869.c index 5b7c71ab49f..17265fa56c9 100644 --- a/libs/wine/c_869.c +++ b/libs/wine/c_869.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, + 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0386, 0x0087, + 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, + 0x038a, 0x03aa, 0x038c, 0x0093, 0x0094, 0x038e, 0x03ab, 0x00a9, + 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, + 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, + 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, + 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, + 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, + 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, + 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, + 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, + 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0 }; @@ -678,6 +711,7 @@ const struct sbcs_table cptable_869 = { { 869, 1, 0x003f, 0x003f, "OEM Greek" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_874.c b/libs/wine/c_874.c index 1a46bf5058c..71792bd3770 100644 --- a/libs/wine/c_874.c +++ b/libs/wine/c_874.c @@ -4,7 +4,7 @@ #include "wine/unicode.h" -static const WCHAR cp2uni[256] = +static const WCHAR cp2uni[512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, @@ -37,6 +37,39 @@ static const WCHAR cp2uni[256] = 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, + 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0x003f, 0x003f, 0x00fe, 0x003f, + /* glyphs */ + 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25ba, 0x25c4, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x20ac, 0x0081, 0x0082, 0x0083, 0x0084, 0x2026, 0x0086, 0x0087, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, + 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, + 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, + 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, + 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, + 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, + 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, + 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, + 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, + 0x0e38, 0x0e39, 0x0e3a, 0x003f, 0x003f, 0x003f, 0x00de, 0x0e3f, + 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, + 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, + 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0x003f, 0x003f, 0x00fe, 0x003f }; @@ -711,6 +744,7 @@ const struct sbcs_table cptable_874 = { { 874, 1, 0x003f, 0x003f, "ANSI/OEM Thai" }, cp2uni, + cp2uni + 256, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_875.c b/libs/wine/c_875.c index 987e30b574f..865331d5de7 100644 --- a/libs/wine/c_875.c +++ b/libs/wine/c_875.c @@ -678,6 +678,7 @@ const struct sbcs_table cptable_875 = { { 875, 1, 0x003f, 0x003f, "IBM EBCDIC Greek" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/c_878.c b/libs/wine/c_878.c index 41cfe802a9d..02f092df4f8 100644 --- a/libs/wine/c_878.c +++ b/libs/wine/c_878.c @@ -711,6 +711,7 @@ const struct sbcs_table cptable_878 = { { 878, 1, 0x003f, 0x003f, "Russian KOI8" }, cp2uni, + cp2uni, uni2cp_low, uni2cp_high }; diff --git a/libs/wine/cpmap.pl b/libs/wine/cpmap.pl index 292345a3ef3..913d9273ac1 100755 --- a/libs/wine/cpmap.pl +++ b/libs/wine/cpmap.pl @@ -37,67 +37,67 @@ $DEF_CHAR = ord '?'; @allfiles = ( - [ 37, "VENDORS/MICSFT/EBCDIC/CP037.TXT", "IBM EBCDIC US Canada" ], - [ 424, "VENDORS/MISC/CP424.TXT", "IBM EBCDIC Hebrew" ], - [ 437, "VENDORS/MICSFT/PC/CP437.TXT", "OEM United States" ], - [ 500, "VENDORS/MICSFT/EBCDIC/CP500.TXT", "IBM EBCDIC International" ], - [ 737, "VENDORS/MICSFT/PC/CP737.TXT", "OEM Greek 437G" ], - [ 775, "VENDORS/MICSFT/PC/CP775.TXT", "OEM Baltic" ], - [ 850, "VENDORS/MICSFT/PC/CP850.TXT", "OEM Multilingual Latin 1" ], - [ 852, "VENDORS/MICSFT/PC/CP852.TXT", "OEM Slovak Latin 2" ], - [ 855, "VENDORS/MICSFT/PC/CP855.TXT", "OEM Cyrillic" ], - [ 856, "VENDORS/MISC/CP856.TXT", "Hebrew PC" ], - [ 857, "VENDORS/MICSFT/PC/CP857.TXT", "OEM Turkish" ], - [ 860, "VENDORS/MICSFT/PC/CP860.TXT", "OEM Portuguese" ], - [ 861, "VENDORS/MICSFT/PC/CP861.TXT", "OEM Icelandic" ], - [ 862, "VENDORS/MICSFT/PC/CP862.TXT", "OEM Hebrew" ], - [ 863, "VENDORS/MICSFT/PC/CP863.TXT", "OEM Canadian French" ], - [ 864, "VENDORS/MICSFT/PC/CP864.TXT", "OEM Arabic" ], - [ 865, "VENDORS/MICSFT/PC/CP865.TXT", "OEM Nordic" ], - [ 866, "VENDORS/MICSFT/PC/CP866.TXT", "OEM Russian" ], - [ 869, "VENDORS/MICSFT/PC/CP869.TXT", "OEM Greek" ], - [ 874, "VENDORS/MICSFT/PC/CP874.TXT", "ANSI/OEM Thai" ], - [ 875, "VENDORS/MICSFT/EBCDIC/CP875.TXT", "IBM EBCDIC Greek" ], - [ 878, "VENDORS/MISC/KOI8-R.TXT", "Russian KOI8" ], - [ 932, "VENDORS/MICSFT/WINDOWS/CP932.TXT", "ANSI/OEM Japanese Shift-JIS" ], - [ 936, "VENDORS/MICSFT/WINDOWS/CP936.TXT", "ANSI/OEM Simplified Chinese GBK" ], - [ 949, "VENDORS/MICSFT/WINDOWS/CP949.TXT", "ANSI/OEM Korean Unified Hangul" ], - [ 950, "VENDORS/MICSFT/WINDOWS/CP950.TXT", "ANSI/OEM Traditional Chinese Big5" ], - [ 1006, "VENDORS/MISC/CP1006.TXT", "IBM Arabic" ], - [ 1026, "VENDORS/MICSFT/EBCDIC/CP1026.TXT", "IBM EBCDIC Latin 5 Turkish" ], - [ 1250, "VENDORS/MICSFT/WINDOWS/CP1250.TXT", "ANSI Eastern Europe" ], - [ 1251, "VENDORS/MICSFT/WINDOWS/CP1251.TXT", "ANSI Cyrillic" ], - [ 1252, "VENDORS/MICSFT/WINDOWS/CP1252.TXT", "ANSI Latin 1" ], - [ 1253, "VENDORS/MICSFT/WINDOWS/CP1253.TXT", "ANSI Greek" ], - [ 1254, "VENDORS/MICSFT/WINDOWS/CP1254.TXT", "ANSI Turkish" ], - [ 1255, "VENDORS/MICSFT/WINDOWS/CP1255.TXT", "ANSI Hebrew" ], - [ 1256, "VENDORS/MICSFT/WINDOWS/CP1256.TXT", "ANSI Arabic" ], - [ 1257, "VENDORS/MICSFT/WINDOWS/CP1257.TXT", "ANSI Baltic" ], - [ 1258, "VENDORS/MICSFT/WINDOWS/CP1258.TXT", "ANSI/OEM Viet Nam" ], - [ 10000, "VENDORS/MICSFT/MAC/ROMAN.TXT", "Mac Roman" ], - [ 10006, "VENDORS/MICSFT/MAC/GREEK.TXT", "Mac Greek" ], - [ 10007, "VENDORS/MICSFT/MAC/CYRILLIC.TXT", "Mac Cyrillic" ], - [ 10029, "VENDORS/MICSFT/MAC/LATIN2.TXT", "Mac Latin 2" ], - [ 10079, "VENDORS/MICSFT/MAC/ICELAND.TXT", "Mac Icelandic" ], - [ 10081, "VENDORS/MICSFT/MAC/TURKISH.TXT", "Mac Turkish" ], - [ 20127, undef, "US-ASCII (7bit)" ], - [ 20866, "VENDORS/MISC/KOI8-R.TXT", "Russian KOI8" ], - [ 20932, "OBSOLETE/EASTASIA/JIS/JIS0208.TXT", "EUC-JP" ], - [ 21866, "VENDORS/MISC/KOI8-U.TXT", "Ukrainian KOI8" ], - [ 28591, "ISO8859/8859-1.TXT", "ISO 8859-1 Latin 1" ], - [ 28592, "ISO8859/8859-2.TXT", "ISO 8859-2 Latin 2 (East European)" ], - [ 28593, "ISO8859/8859-3.TXT", "ISO 8859-3 Latin 3 (South European)" ], - [ 28594, "ISO8859/8859-4.TXT", "ISO 8859-4 Latin 4 (Baltic old)" ], - [ 28595, "ISO8859/8859-5.TXT", "ISO 8859-5 Cyrillic" ], - [ 28596, "ISO8859/8859-6.TXT", "ISO 8859-6 Arabic" ], - [ 28597, "ISO8859/8859-7.TXT", "ISO 8859-7 Greek" ], - [ 28598, "ISO8859/8859-8.TXT", "ISO 8859-8 Hebrew" ], - [ 28599, "ISO8859/8859-9.TXT", "ISO 8859-9 Latin 5 (Turkish)" ], - [ 28600, "ISO8859/8859-10.TXT", "ISO 8859-10 Latin 6 (Nordic)" ], - [ 28603, "ISO8859/8859-13.TXT", "ISO 8859-13 Latin 7 (Baltic)" ], - [ 28604, "ISO8859/8859-14.TXT", "ISO 8859-14 Latin 8 (Celtic)" ], - [ 28605, "ISO8859/8859-15.TXT", "ISO 8859-15 Latin 9 (Euro)" ], - [ 28606, "ISO8859/8859-16.TXT", "ISO 8859-16 Latin 10 (Balkan)" ] + [ 37, "VENDORS/MICSFT/EBCDIC/CP037.TXT", 0, "IBM EBCDIC US Canada" ], + [ 424, "VENDORS/MISC/CP424.TXT", 0, "IBM EBCDIC Hebrew" ], + [ 437, "VENDORS/MICSFT/PC/CP437.TXT", 1, "OEM United States" ], + [ 500, "VENDORS/MICSFT/EBCDIC/CP500.TXT", 0, "IBM EBCDIC International" ], + [ 737, "VENDORS/MICSFT/PC/CP737.TXT", 1, "OEM Greek 437G" ], + [ 775, "VENDORS/MICSFT/PC/CP775.TXT", 1, "OEM Baltic" ], + [ 850, "VENDORS/MICSFT/PC/CP850.TXT", 1, "OEM Multilingual Latin 1" ], + [ 852, "VENDORS/MICSFT/PC/CP852.TXT", 1, "OEM Slovak Latin 2" ], + [ 855, "VENDORS/MICSFT/PC/CP855.TXT", 1, "OEM Cyrillic" ], + [ 856, "VENDORS/MISC/CP856.TXT", 0, "Hebrew PC" ], + [ 857, "VENDORS/MICSFT/PC/CP857.TXT", 1, "OEM Turkish" ], + [ 860, "VENDORS/MICSFT/PC/CP860.TXT", 1, "OEM Portuguese" ], + [ 861, "VENDORS/MICSFT/PC/CP861.TXT", 1, "OEM Icelandic" ], + [ 862, "VENDORS/MICSFT/PC/CP862.TXT", 1, "OEM Hebrew" ], + [ 863, "VENDORS/MICSFT/PC/CP863.TXT", 1, "OEM Canadian French" ], + [ 864, "VENDORS/MICSFT/PC/CP864.TXT", 0, "OEM Arabic" ], + [ 865, "VENDORS/MICSFT/PC/CP865.TXT", 1, "OEM Nordic" ], + [ 866, "VENDORS/MICSFT/PC/CP866.TXT", 1, "OEM Russian" ], + [ 869, "VENDORS/MICSFT/PC/CP869.TXT", 1, "OEM Greek" ], + [ 874, "VENDORS/MICSFT/PC/CP874.TXT", 1, "ANSI/OEM Thai" ], + [ 875, "VENDORS/MICSFT/EBCDIC/CP875.TXT", 0, "IBM EBCDIC Greek" ], + [ 878, "VENDORS/MISC/KOI8-R.TXT", 0, "Russian KOI8" ], + [ 932, "VENDORS/MICSFT/WINDOWS/CP932.TXT", 0, "ANSI/OEM Japanese Shift-JIS" ], + [ 936, "VENDORS/MICSFT/WINDOWS/CP936.TXT", 0, "ANSI/OEM Simplified Chinese GBK" ], + [ 949, "VENDORS/MICSFT/WINDOWS/CP949.TXT", 0, "ANSI/OEM Korean Unified Hangul" ], + [ 950, "VENDORS/MICSFT/WINDOWS/CP950.TXT", 0, "ANSI/OEM Traditional Chinese Big5" ], + [ 1006, "VENDORS/MISC/CP1006.TXT", 0, "IBM Arabic" ], + [ 1026, "VENDORS/MICSFT/EBCDIC/CP1026.TXT", 0, "IBM EBCDIC Latin 5 Turkish" ], + [ 1250, "VENDORS/MICSFT/WINDOWS/CP1250.TXT", 0, "ANSI Eastern Europe" ], + [ 1251, "VENDORS/MICSFT/WINDOWS/CP1251.TXT", 0, "ANSI Cyrillic" ], + [ 1252, "VENDORS/MICSFT/WINDOWS/CP1252.TXT", 0, "ANSI Latin 1" ], + [ 1253, "VENDORS/MICSFT/WINDOWS/CP1253.TXT", 0, "ANSI Greek" ], + [ 1254, "VENDORS/MICSFT/WINDOWS/CP1254.TXT", 0, "ANSI Turkish" ], + [ 1255, "VENDORS/MICSFT/WINDOWS/CP1255.TXT", 0, "ANSI Hebrew" ], + [ 1256, "VENDORS/MICSFT/WINDOWS/CP1256.TXT", 0, "ANSI Arabic" ], + [ 1257, "VENDORS/MICSFT/WINDOWS/CP1257.TXT", 0, "ANSI Baltic" ], + [ 1258, "VENDORS/MICSFT/WINDOWS/CP1258.TXT", 0, "ANSI/OEM Viet Nam" ], + [ 10000, "VENDORS/MICSFT/MAC/ROMAN.TXT", 0, "Mac Roman" ], + [ 10006, "VENDORS/MICSFT/MAC/GREEK.TXT", 0, "Mac Greek" ], + [ 10007, "VENDORS/MICSFT/MAC/CYRILLIC.TXT", 0, "Mac Cyrillic" ], + [ 10029, "VENDORS/MICSFT/MAC/LATIN2.TXT", 0, "Mac Latin 2" ], + [ 10079, "VENDORS/MICSFT/MAC/ICELAND.TXT", 0, "Mac Icelandic" ], + [ 10081, "VENDORS/MICSFT/MAC/TURKISH.TXT", 0, "Mac Turkish" ], + [ 20127, undef, 0, "US-ASCII (7bit)" ], + [ 20866, "VENDORS/MISC/KOI8-R.TXT", 0, "Russian KOI8" ], + [ 20932, "OBSOLETE/EASTASIA/JIS/JIS0208.TXT", 0, "EUC-JP" ], + [ 21866, "VENDORS/MISC/KOI8-U.TXT", 0, "Ukrainian KOI8" ], + [ 28591, "ISO8859/8859-1.TXT", 0, "ISO 8859-1 Latin 1" ], + [ 28592, "ISO8859/8859-2.TXT", 0, "ISO 8859-2 Latin 2 (East European)" ], + [ 28593, "ISO8859/8859-3.TXT", 0, "ISO 8859-3 Latin 3 (South European)" ], + [ 28594, "ISO8859/8859-4.TXT", 0, "ISO 8859-4 Latin 4 (Baltic old)" ], + [ 28595, "ISO8859/8859-5.TXT", 0, "ISO 8859-5 Cyrillic" ], + [ 28596, "ISO8859/8859-6.TXT", 0, "ISO 8859-6 Arabic" ], + [ 28597, "ISO8859/8859-7.TXT", 0, "ISO 8859-7 Greek" ], + [ 28598, "ISO8859/8859-8.TXT", 0, "ISO 8859-8 Hebrew" ], + [ 28599, "ISO8859/8859-9.TXT", 0, "ISO 8859-9 Latin 5 (Turkish)" ], + [ 28600, "ISO8859/8859-10.TXT", 0, "ISO 8859-10 Latin 6 (Nordic)" ], + [ 28603, "ISO8859/8859-13.TXT", 0, "ISO 8859-13 Latin 7 (Baltic)" ], + [ 28604, "ISO8859/8859-14.TXT", 0, "ISO 8859-14 Latin 8 (Celtic)" ], + [ 28605, "ISO8859/8859-15.TXT", 0, "ISO 8859-15 Latin 9 (Euro)" ], + [ 28606, "ISO8859/8859-16.TXT", 0, "ISO 8859-16 Latin 10 (Balkan)" ] ); @@ -406,6 +406,45 @@ sub fill_20127_codepage() for (my $i = 128; $i < 256; $i++) { $cp2uni[$i] = $i & 0x7f; } } +################################################################ +# get a mapping including glyph chars for MB_USEGLYPHCHARS + +sub get_glyphs_mapping(@) +{ + $_[0x01] = 0x263a; # (WHITE SMILING FACE) + $_[0x02] = 0x263b; # (BLACK SMILING FACE) + $_[0x03] = 0x2665; # (BLACK HEART SUIT) + $_[0x04] = 0x2666; # (BLACK DIAMOND SUIT) + $_[0x05] = 0x2663; # (BLACK CLUB SUIT) + $_[0x06] = 0x2660; # (BLACK SPADE SUIT) + $_[0x07] = 0x2022; # (BULLET) + $_[0x08] = 0x25d8; # (INVERSE BULLET) + $_[0x09] = 0x25cb; # (WHITE CIRCLE) + $_[0x0a] = 0x25d9; # (INVERSE WHITE CIRCLE) + $_[0x0b] = 0x2642; # (MALE SIGN) + $_[0x0c] = 0x2640; # (FEMALE SIGN) + $_[0x0d] = 0x266a; # (EIGHTH NOTE) + $_[0x0e] = 0x266b; # (BEAMED EIGHTH NOTES) + $_[0x0f] = 0x263c; # (WHITE SUN WITH RAYS) + $_[0x10] = 0x25ba; # (BLACK RIGHT-POINTING POINTER) + $_[0x11] = 0x25c4; # (BLACK LEFT-POINTING POINTER) + $_[0x12] = 0x2195; # (UP DOWN ARROW) + $_[0x13] = 0x203c; # (DOUBLE EXCLAMATION MARK) + $_[0x14] = 0x00b6; # (PILCROW SIGN) + $_[0x15] = 0x00a7; # (SECTION SIGN) + $_[0x16] = 0x25ac; # (BLACK RECTANGLE) + $_[0x17] = 0x21a8; # (UP DOWN ARROW WITH BASE) + $_[0x18] = 0x2191; # (UPWARDS ARROW) + $_[0x19] = 0x2193; # (DOWNWARDS ARROW) + $_[0x1a] = 0x2192; # (RIGHTWARDS ARROW) + $_[0x1b] = 0x2190; # (LEFTWARDS ARROW) + $_[0x1c] = 0x221f; # (RIGHT ANGLE) + $_[0x1d] = 0x2194; # (LEFT RIGHT ARROW) + $_[0x1e] = 0x25b2; # (BLACK UP-POINTING TRIANGLE) + $_[0x1f] = 0x25bc; # (BLACK DOWN-POINTING TRIANGLE) + $_[0x7f] = 0x2302; # (HOUSE) + return @_; +} ################################################################ # build EUC-JP table from the JIS 0208 file @@ -681,13 +720,23 @@ sub DUMP_ARRAY # dump an SBCS mapping table sub DUMP_SBCS_TABLE { - my ($codepage, $name) = @_; + my ($codepage, $has_glyphs, $name) = @_; my $i; # output the ascii->unicode table - printf OUTPUT "static const WCHAR cp2uni[256] =\n"; - printf OUTPUT "{\n%s\n};\n\n", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @cp2uni[0 .. 255] ); + if ($has_glyphs) + { + printf OUTPUT "static const WCHAR cp2uni[512] =\n"; + printf OUTPUT "{\n%s", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @cp2uni[0 .. 255] ); + printf OUTPUT ",\n /* glyphs */\n%s\n};\n\n", + DUMP_ARRAY( "0x%04x", $DEF_CHAR, get_glyphs_mapping(@cp2uni[0 .. 255]) ); + } + else + { + printf OUTPUT "static const WCHAR cp2uni[256] =\n"; + printf OUTPUT "{\n%s\n};\n\n", DUMP_ARRAY( "0x%04x", $DEF_CHAR, @cp2uni[0 .. 255] ); + } # count the number of unicode->ascii subtables that contain something @@ -731,6 +780,8 @@ sub DUMP_SBCS_TABLE printf OUTPUT " { %d, 1, 0x%04x, 0x%04x, \"%s\" },\n", $codepage, $DEF_CHAR, $DEF_CHAR, $name; printf OUTPUT " cp2uni,\n"; + if ($has_glyphs) { printf OUTPUT " cp2uni + 256,\n"; } + else { printf OUTPUT " cp2uni,\n"; } printf OUTPUT " uni2cp_low,\n"; printf OUTPUT " uni2cp_high\n};\n"; } @@ -1146,7 +1197,7 @@ sub DUMP_COMPOSE_TABLES # read an input file and generate the corresponding .c file sub HANDLE_FILE { - my ($codepage,$filename,$comment) = @_; + my ($codepage,$filename,$has_glyphs,$comment) = @_; @cp2uni = (); @lead_bytes = (); @@ -1170,11 +1221,18 @@ sub HANDLE_FILE # dump all tables printf OUTPUT "/* code page %03d (%s) */\n", $codepage, $comment; - printf OUTPUT "/* generated from %s */\n", $MAPPREFIX . $filename if $filename; - printf OUTPUT "/* DO NOT EDIT!! */\n\n"; + if ($filename) + { + printf OUTPUT "/* generated from %s */\n", $MAPPREFIX . $filename; + printf OUTPUT "/* DO NOT EDIT!! */\n\n"; + } + else + { + printf OUTPUT "/* Automatically generated; DO NOT EDIT!! */\n\n"; + } printf OUTPUT "#include \"wine/unicode.h\"\n\n"; - if ($#lead_bytes == -1) { DUMP_SBCS_TABLE( $codepage, $comment ); } + if ($#lead_bytes == -1) { DUMP_SBCS_TABLE( $codepage, $has_glyphs, $comment ); } else { DUMP_DBCS_TABLE( $codepage, $comment ); } close OUTPUT; save_file($output); diff --git a/libs/wine/mbtowc.c b/libs/wine/mbtowc.c index c0e5791ccfb..6249e41b388 100644 --- a/libs/wine/mbtowc.c +++ b/libs/wine/mbtowc.c @@ -40,10 +40,10 @@ static int get_decomposition( WCHAR src, WCHAR *dst, unsigned int dstlen ) } /* check src string for invalid chars; return non-zero if invalid char found */ -static inline int check_invalid_chars_sbcs( const struct sbcs_table *table, +static inline int check_invalid_chars_sbcs( const struct sbcs_table *table, int flags, const unsigned char *src, unsigned int srclen ) { - const WCHAR * const cp2uni = table->cp2uni; + const WCHAR * const cp2uni = (flags & MB_USEGLYPHCHARS) ? table->cp2uni_glyphs : table->cp2uni; while (srclen) { if (cp2uni[*src] == table->info.def_unicode_char && *src != table->info.def_char) @@ -56,11 +56,11 @@ static inline int check_invalid_chars_sbcs( const struct sbcs_table *table, /* mbstowcs for single-byte code page */ /* all lengths are in characters, not bytes */ -static inline int mbstowcs_sbcs( const struct sbcs_table *table, +static inline int mbstowcs_sbcs( const struct sbcs_table *table, int flags, const unsigned char *src, unsigned int srclen, WCHAR *dst, unsigned int dstlen ) { - const WCHAR * const cp2uni = table->cp2uni; + const WCHAR * const cp2uni = (flags & MB_USEGLYPHCHARS) ? table->cp2uni_glyphs : table->cp2uni; int ret = srclen; if (dstlen < srclen) @@ -101,11 +101,11 @@ static inline int mbstowcs_sbcs( const struct sbcs_table *table, } /* mbstowcs for single-byte code page with char decomposition */ -static int mbstowcs_sbcs_decompose( const struct sbcs_table *table, +static int mbstowcs_sbcs_decompose( const struct sbcs_table *table, int flags, const unsigned char *src, unsigned int srclen, WCHAR *dst, unsigned int dstlen ) { - const WCHAR * const cp2uni = table->cp2uni; + const WCHAR * const cp2uni = (flags & MB_USEGLYPHCHARS) ? table->cp2uni_glyphs : table->cp2uni; unsigned int len; if (!dstlen) /* compute length */ @@ -258,14 +258,14 @@ int wine_cp_mbstowcs( const union cptable *table, int flags, { if (flags & MB_ERR_INVALID_CHARS) { - if (check_invalid_chars_sbcs( &table->sbcs, src, srclen )) return -2; + if (check_invalid_chars_sbcs( &table->sbcs, flags, src, srclen )) return -2; } if (!(flags & MB_COMPOSITE)) { if (!dstlen) return srclen; - return mbstowcs_sbcs( &table->sbcs, src, srclen, dst, dstlen ); + return mbstowcs_sbcs( &table->sbcs, flags, src, srclen, dst, dstlen ); } - return mbstowcs_sbcs_decompose( &table->sbcs, src, srclen, dst, dstlen ); + return mbstowcs_sbcs_decompose( &table->sbcs, flags, src, srclen, dst, dstlen ); } else /* mbcs */ {