From: Alexandre Julliard julliard@winehq.org
--- dlls/win32u/font.c | 9 +- dlls/win32u/vertical.c | 204 +++++++++++++++++++++++-------------- dlls/wineps.drv/text.c | 9 +- dlls/wineps.drv/vertical.c | 204 +++++++++++++++++++++++-------------- tools/make_unicode | 7 +- 5 files changed, 270 insertions(+), 163 deletions(-)
diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c index 7fc4a01eb64..6509b325dad 100644 --- a/dlls/win32u/font.c +++ b/dlls/win32u/font.c @@ -3175,10 +3175,15 @@ static BOOL CDECL font_EnumFonts( PHYSDEV dev, LOGFONTW *lf, FONTENUMPROCW proc, }
-static BOOL check_unicode_tategaki( WCHAR ch ) +static inline unsigned short get_table_entry_32(const unsigned short *table, UINT ch) +{ + return table[table[table[table[ch >> 12] + ((ch >> 8) & 0x0f)] + ((ch >> 4) & 0x0f)] + (ch & 0xf)]; +} + +static BOOL check_unicode_tategaki( UINT ch ) { extern const unsigned short vertical_orientation_table[] DECLSPEC_HIDDEN; - unsigned short orientation = vertical_orientation_table[vertical_orientation_table[vertical_orientation_table[ch >> 8]+((ch >> 4) & 0x0f)]+ (ch & 0xf)]; + unsigned short orientation = get_table_entry_32( vertical_orientation_table, ch );
/* We only reach this code if typographical substitution did not occur */ /* Type: U or Type: Tu */ diff --git a/dlls/win32u/vertical.c b/dlls/win32u/vertical.c index b713eda8229..28a5c8899e1 100644 --- a/dlls/win32u/vertical.c +++ b/dlls/win32u/vertical.c @@ -8,85 +8,133 @@
#include "windef.h"
-const unsigned short DECLSPEC_HIDDEN vertical_orientation_table[1248] = +const unsigned short DECLSPEC_HIDDEN vertical_orientation_table[1632] = { /* level 1 offsets */ - 0x0100, 0x0110, 0x0112, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0122, 0x0110, 0x0110, 0x0132, 0x0122, 0x013a, 0x0110, - 0x0142, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0152, 0x0162, 0x0171, 0x0181, 0x0190, 0x01a0, 0x01af, 0x01b9, - 0x0110, 0x0110, 0x0110, 0x01c8, 0x0110, 0x0110, 0x01d8, 0x0122, - 0x01e8, 0x01f8, 0x0208, 0x0218, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0135, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0228, 0x0110, 0x0110, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0110, 0x0110, 0x0110, 0x0237, 0x0247, + 0x0110, 0x011f, 0x012f, 0x013f, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x014f, 0x0143, 0x0143, 0x015b, 0x0143, 0x016b, + 0x017b, 0x0186, 0x0191, 0x01a1, 0x01ad, 0x0191, 0x01b4, 0x0143, + 0x01c4, 0x0191, 0x01d2, 0x01e2, 0x01e5, 0x01f5, 0x0191, 0x0205, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, /* level 2 offsets */ - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0260, 0x026d, 0x0257, 0x027c, 0x0257, 0x027c, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0284, 0x0257, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0293, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0257, 0x027d, 0x02a2, 0x02b2, 0x02c0, 0x02cf, - 0x027e, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x02d2, - 0x02e1, 0x0257, 0x02f1, 0x02fd, 0x030b, 0x031a, 0x032a, 0x0294, - 0x0294, 0x0294, 0x0339, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0259, 0x0257, 0x0349, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0359, 0x0294, 0x0361, 0x0257, 0x0257, 0x0257, 0x0257, - 0x02d2, 0x0294, 0x0299, 0x0257, 0x02a4, 0x0371, 0x031e, 0x0292, - 0x0294, 0x0294, 0x037c, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x029a, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x029c, - 0x038c, 0x0294, 0x02a0, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0292, 0x0294, 0x0257, 0x0257, 0x029a, 0x0257, 0x0257, - 0x0257, 0x027c, 0x0257, 0x0351, 0x0294, 0x039a, 0x0298, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x02a2, 0x0257, 0x0257, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x03a9, 0x03b7, 0x0294, 0x03c6, 0x03d5, 0x0294, 0x03e2, 0x0294, - 0x03ef, 0x03fe, 0x040e, 0x0294, 0x03e2, 0x0294, 0x03ef, 0x0419, - 0x0294, 0x0294, 0x0426, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0436, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x03c7, - 0x0436, 0x0436, 0x0436, 0x0436, 0x0436, 0x043e, 0x0294, 0x0446, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0294, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0294, 0x0257, 0x0294, 0x029b, 0x0453, 0x0462, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0472, - 0x0481, 0x0294, 0x0491, 0x0294, 0x04a1, 0x04b0, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x04c0, 0x04d0, + 0x0225, 0x0235, 0x0237, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0247, 0x0235, 0x0235, 0x0257, 0x0247, 0x025f, 0x0235, 0x0267, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0277, + 0x0287, 0x0296, 0x02a6, 0x02b5, 0x02c5, 0x02d4, 0x02de, 0x0235, + 0x0235, 0x0235, 0x02ed, 0x0235, 0x0235, 0x02fd, 0x0247, 0x030d, + 0x031d, 0x032d, 0x033d, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x025a, 0x0235, 0x0235, 0x0235, 0x0235, + 0x034d, 0x0235, 0x0235, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0235, 0x0235, + 0x0235, 0x035c, 0x036c, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x037c, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0386, 0x0235, 0x0235, 0x0235, 0x0235, + 0x025b, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0247, 0x0247, 0x0247, 0x0247, 0x0392, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0247, 0x0247, 0x025f, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0396, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x025f, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x03a6, 0x0247, 0x0247, 0x0247, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x025a, 0x0247, 0x0247, 0x0396, + 0x025f, 0x0235, 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x025c, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x03b6, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0235, 0x0247, 0x0247, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x03b7, + /* level 3 offsets */ + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03d0, 0x03dd, 0x03c7, 0x03ec, 0x03c7, 0x03ec, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03f4, 0x03c7, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0403, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x03c7, 0x03ed, 0x0412, 0x0422, 0x0430, 0x043f, + 0x03ee, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0442, + 0x0451, 0x03c7, 0x0461, 0x046d, 0x047b, 0x048a, 0x049a, 0x0404, + 0x0404, 0x0404, 0x04a9, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c9, 0x03c7, 0x04b9, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x04c9, 0x0404, 0x04d1, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x0442, 0x0404, 0x0409, 0x03c7, 0x0414, 0x04e1, 0x048e, 0x0402, + 0x0404, 0x0404, 0x04ec, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x040a, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x040c, + 0x04fc, 0x0404, 0x0410, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x0402, 0x0404, 0x03c7, 0x03c7, 0x040a, 0x03c7, 0x03c7, + 0x03c7, 0x03ec, 0x03c7, 0x04c1, 0x0404, 0x050a, 0x0408, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0412, 0x03c7, 0x03c7, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0519, 0x0527, 0x0404, 0x0536, 0x0545, 0x0404, 0x0552, 0x0404, + 0x055f, 0x056e, 0x057e, 0x0404, 0x0552, 0x0404, 0x055f, 0x0589, + 0x0404, 0x0404, 0x0596, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x05a6, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0537, + 0x05a6, 0x05a6, 0x05a6, 0x05a6, 0x05a6, 0x05ae, 0x0404, 0x05b6, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x0404, 0x03c7, 0x0404, 0x040b, 0x05c3, 0x05d2, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x05e2, + 0x05f1, 0x0404, 0x0601, 0x0404, 0x0611, 0x0620, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0630, 0x0640, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, + 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, + 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x0404, 0x0650, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0406, /* values */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -169,5 +217,7 @@ const unsigned short DECLSPEC_HIDDEN vertical_orientation_table[1248] = 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, - 0x0000 + 0x0000, 0x0003, 0x0003, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001 }; diff --git a/dlls/wineps.drv/text.c b/dlls/wineps.drv/text.c index 767b1529c24..31e1f9c60c2 100644 --- a/dlls/wineps.drv/text.c +++ b/dlls/wineps.drv/text.c @@ -42,9 +42,14 @@ static BOOL PSDRV_Text(PHYSDEV dev, INT x, INT y, UINT flags,
extern const unsigned short vertical_orientation_table[] DECLSPEC_HIDDEN;
-static BOOL check_unicode_tategaki(WCHAR uchar) +static inline unsigned short get_table_entry_32(const unsigned short *table, UINT ch) { - unsigned short orientation = vertical_orientation_table[vertical_orientation_table[vertical_orientation_table[uchar >> 8]+((uchar >> 4) & 0x0f)]+ (uchar & 0xf)]; + return table[table[table[table[ch >> 12] + ((ch >> 8) & 0x0f)] + ((ch >> 4) & 0x0f)] + (ch & 0xf)]; +} + +static BOOL check_unicode_tategaki(UINT uchar) +{ + unsigned short orientation = get_table_entry_32( vertical_orientation_table, uchar );
/* Type: U or Type: Tu */ /* TODO Type: Tr, Normally the logic for Tr would be that if diff --git a/dlls/wineps.drv/vertical.c b/dlls/wineps.drv/vertical.c index 0df776b7f4d..ba60b9040af 100644 --- a/dlls/wineps.drv/vertical.c +++ b/dlls/wineps.drv/vertical.c @@ -4,85 +4,133 @@
#include "windef.h"
-const unsigned short DECLSPEC_HIDDEN vertical_orientation_table[1248] = +const unsigned short DECLSPEC_HIDDEN vertical_orientation_table[1632] = { /* level 1 offsets */ - 0x0100, 0x0110, 0x0112, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0122, 0x0110, 0x0110, 0x0132, 0x0122, 0x013a, 0x0110, - 0x0142, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0152, 0x0162, 0x0171, 0x0181, 0x0190, 0x01a0, 0x01af, 0x01b9, - 0x0110, 0x0110, 0x0110, 0x01c8, 0x0110, 0x0110, 0x01d8, 0x0122, - 0x01e8, 0x01f8, 0x0208, 0x0218, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0135, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0228, 0x0110, 0x0110, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, - 0x0122, 0x0122, 0x0122, 0x0110, 0x0110, 0x0110, 0x0237, 0x0247, + 0x0110, 0x011f, 0x012f, 0x013f, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x014f, 0x0143, 0x0143, 0x015b, 0x0143, 0x016b, + 0x017b, 0x0186, 0x0191, 0x01a1, 0x01ad, 0x0191, 0x01b4, 0x0143, + 0x01c4, 0x0191, 0x01d2, 0x01e2, 0x01e5, 0x01f5, 0x0191, 0x0205, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0215, /* level 2 offsets */ - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0260, 0x026d, 0x0257, 0x027c, 0x0257, 0x027c, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0284, 0x0257, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0293, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0257, 0x027d, 0x02a2, 0x02b2, 0x02c0, 0x02cf, - 0x027e, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x02d2, - 0x02e1, 0x0257, 0x02f1, 0x02fd, 0x030b, 0x031a, 0x032a, 0x0294, - 0x0294, 0x0294, 0x0339, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0259, 0x0257, 0x0349, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0359, 0x0294, 0x0361, 0x0257, 0x0257, 0x0257, 0x0257, - 0x02d2, 0x0294, 0x0299, 0x0257, 0x02a4, 0x0371, 0x031e, 0x0292, - 0x0294, 0x0294, 0x037c, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x029a, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x029c, - 0x038c, 0x0294, 0x02a0, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0257, 0x0292, 0x0294, 0x0257, 0x0257, 0x029a, 0x0257, 0x0257, - 0x0257, 0x027c, 0x0257, 0x0351, 0x0294, 0x039a, 0x0298, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x02a2, 0x0257, 0x0257, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x03a9, 0x03b7, 0x0294, 0x03c6, 0x03d5, 0x0294, 0x03e2, 0x0294, - 0x03ef, 0x03fe, 0x040e, 0x0294, 0x03e2, 0x0294, 0x03ef, 0x0419, - 0x0294, 0x0294, 0x0426, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0436, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x03c7, - 0x0436, 0x0436, 0x0436, 0x0436, 0x0436, 0x043e, 0x0294, 0x0446, - 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0294, 0x0294, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, - 0x0294, 0x0257, 0x0294, 0x029b, 0x0453, 0x0462, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x0472, - 0x0481, 0x0294, 0x0491, 0x0294, 0x04a1, 0x04b0, 0x0257, 0x0257, - 0x0257, 0x0257, 0x0257, 0x0257, 0x0257, 0x04c0, 0x04d0, + 0x0225, 0x0235, 0x0237, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0247, 0x0235, 0x0235, 0x0257, 0x0247, 0x025f, 0x0235, 0x0267, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0277, + 0x0287, 0x0296, 0x02a6, 0x02b5, 0x02c5, 0x02d4, 0x02de, 0x0235, + 0x0235, 0x0235, 0x02ed, 0x0235, 0x0235, 0x02fd, 0x0247, 0x030d, + 0x031d, 0x032d, 0x033d, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x025a, 0x0235, 0x0235, 0x0235, 0x0235, + 0x034d, 0x0235, 0x0235, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0235, 0x0235, + 0x0235, 0x035c, 0x036c, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x037c, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0386, 0x0235, 0x0235, 0x0235, 0x0235, + 0x025b, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0247, 0x0247, 0x0247, 0x0247, 0x0392, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0247, 0x0247, 0x025f, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0396, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x025f, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x03a6, 0x0247, 0x0247, 0x0247, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, + 0x0235, 0x0235, 0x0235, 0x0235, 0x025a, 0x0247, 0x0247, 0x0396, + 0x025f, 0x0235, 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x025c, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x03b6, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0235, 0x0247, 0x0247, + 0x0235, 0x0235, 0x0235, 0x0235, 0x0235, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, 0x0247, + 0x0247, 0x0247, 0x0247, 0x0247, 0x03b7, + /* level 3 offsets */ + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03d0, 0x03dd, 0x03c7, 0x03ec, 0x03c7, 0x03ec, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03f4, 0x03c7, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0403, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x03c7, 0x03ed, 0x0412, 0x0422, 0x0430, 0x043f, + 0x03ee, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0442, + 0x0451, 0x03c7, 0x0461, 0x046d, 0x047b, 0x048a, 0x049a, 0x0404, + 0x0404, 0x0404, 0x04a9, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c9, 0x03c7, 0x04b9, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x04c9, 0x0404, 0x04d1, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x0442, 0x0404, 0x0409, 0x03c7, 0x0414, 0x04e1, 0x048e, 0x0402, + 0x0404, 0x0404, 0x04ec, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x040a, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x040c, + 0x04fc, 0x0404, 0x0410, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x0402, 0x0404, 0x03c7, 0x03c7, 0x040a, 0x03c7, 0x03c7, + 0x03c7, 0x03ec, 0x03c7, 0x04c1, 0x0404, 0x050a, 0x0408, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0412, 0x03c7, 0x03c7, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0519, 0x0527, 0x0404, 0x0536, 0x0545, 0x0404, 0x0552, 0x0404, + 0x055f, 0x056e, 0x057e, 0x0404, 0x0552, 0x0404, 0x055f, 0x0589, + 0x0404, 0x0404, 0x0596, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x05a6, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0537, + 0x05a6, 0x05a6, 0x05a6, 0x05a6, 0x05a6, 0x05ae, 0x0404, 0x05b6, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, 0x0404, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x0404, 0x03c7, 0x0404, 0x040b, 0x05c3, 0x05d2, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x05e2, + 0x05f1, 0x0404, 0x0601, 0x0404, 0x0611, 0x0620, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0630, 0x0640, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, + 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x0404, + 0x0404, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, 0x03c7, + 0x0404, 0x0650, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + 0x0404, 0x0406, /* values */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -165,5 +213,7 @@ const unsigned short DECLSPEC_HIDDEN vertical_orientation_table[1248] = 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, - 0x0000 + 0x0000, 0x0003, 0x0003, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001 }; diff --git a/tools/make_unicode b/tools/make_unicode index fa98661173a..c56e6438ca2 100755 --- a/tools/make_unicode +++ b/tools/make_unicode @@ -3174,10 +3174,7 @@ sub dump_vertical($$) { my $type = $2; die "unknown vertical $type" unless defined $vertical_types{$type}; - if (hex $1 < 65536) - { - $vertical_table[hex $1] = $vertical_types{$type}; - } + $vertical_table[hex $1] = $vertical_types{$type}; next; } elsif (/^\s*([0-9a-fA-F]+)..\s*([0-9a-fA-F]+)\s*;\s*([A-Za-z_]+)\s*/) @@ -3207,7 +3204,7 @@ sub dump_vertical($$) } print OUTPUT "#include "windef.h"\n\n";
- dump_two_level_mapping( "vertical_orientation_table", $vertical_types{'R'}, 16, @vertical_table ); + dump_three_level_mapping( "vertical_orientation_table", $vertical_types{'R'}, 16, @vertical_table );
close OUTPUT; save_file($filename);