From: Alexandre Julliard julliard@winehq.org
--- dlls/dwrite/shapers/arabic.c | 5 +- dlls/dwrite/shapers/arabic_table.c | 375 +++++++++++++++++++++-------- tools/make_unicode | 2 +- 3 files changed, 279 insertions(+), 103 deletions(-)
diff --git a/dlls/dwrite/shapers/arabic.c b/dlls/dwrite/shapers/arabic.c index 720f18915a4..1319355f956 100644 --- a/dlls/dwrite/shapers/arabic.c +++ b/dlls/dwrite/shapers/arabic.c @@ -122,10 +122,9 @@ arabic_state_table[][JOINING_TYPES] =
extern const unsigned short arabic_shaping_table[] DECLSPEC_HIDDEN;
-static unsigned short arabic_get_joining_type(WCHAR ch) +static unsigned short arabic_get_joining_type(UINT ch) { - const unsigned short *table = arabic_shaping_table; - return table[table[table[ch >> 8] + ((ch >> 4) & 0x0f)] + (ch & 0xf)]; + return get_table_entry_32(arabic_shaping_table, ch); }
static void arabic_set_shaping_action(struct scriptshaping_context *context, diff --git a/dlls/dwrite/shapers/arabic_table.c b/dlls/dwrite/shapers/arabic_table.c index 503c8a15420..f5725589890 100644 --- a/dlls/dwrite/shapers/arabic_table.c +++ b/dlls/dwrite/shapers/arabic_table.c @@ -4,107 +4,202 @@
#include "windef.h"
-const unsigned short DECLSPEC_HIDDEN arabic_shaping_table[2099] = +const unsigned short DECLSPEC_HIDDEN arabic_shaping_table[3501] = { /* level 1 offsets */ - 0x0100, 0x010b, 0x010b, 0x011b, 0x0123, 0x012c, 0x013b, 0x014b, - 0x015b, 0x016b, 0x017b, 0x018b, 0x019b, 0x01ab, 0x01b9, 0x01c8, - 0x01d6, 0x010b, 0x010b, 0x01e1, 0x010b, 0x010b, 0x010b, 0x01f0, - 0x0200, 0x020e, 0x021d, 0x022d, 0x023d, 0x010f, 0x010b, 0x010b, - 0x024d, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x025d, 0x026d, 0x010b, 0x010b, - 0x027d, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x0287, 0x010b, - 0x0297, 0x02a7, 0x02b6, 0x02c6, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, - 0x010b, 0x010b, 0x010b, 0x02d5, 0x010b, 0x010b, 0x02e5, 0x02f5, + 0x0110, 0x0120, 0x0130, 0x0140, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x014b, 0x0141, 0x0141, 0x0141, 0x0141, 0x0157, + 0x0167, 0x0177, 0x0141, 0x0186, 0x0141, 0x0141, 0x018c, 0x0141, + 0x0141, 0x0141, 0x0141, 0x019c, 0x01a9, 0x01b9, 0x01c9, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x01d9, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, /* level 2 offsets */ - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0308, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, - 0x0318, 0x0318, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0328, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0317, 0x0318, 0x0338, - 0x0346, 0x0305, 0x0305, 0x0305, 0x0356, 0x0366, 0x0375, 0x037d, - 0x0318, 0x038d, 0x039d, 0x03a5, 0x03ad, 0x03b7, 0x03b7, 0x03c7, - 0x03d7, 0x03df, 0x03ef, 0x0306, 0x03ff, 0x040e, 0x0318, 0x041e, - 0x042c, 0x0438, 0x0447, 0x0305, 0x0305, 0x0332, 0x0457, 0x045d, - 0x03b7, 0x0467, 0x0473, 0x0305, 0x0481, 0x048d, 0x0305, 0x049d, - 0x04a9, 0x04b9, 0x04c9, 0x04d6, 0x034e, 0x04e6, 0x04f5, 0x04ff, - 0x0318, 0x050d, 0x0318, 0x038a, 0x0305, 0x0305, 0x051d, 0x052c, - 0x053b, 0x0549, 0x0305, 0x0558, 0x0305, 0x0305, 0x054d, 0x0567, - 0x0305, 0x0549, 0x0307, 0x0576, 0x0305, 0x0305, 0x054d, 0x0585, - 0x0558, 0x0305, 0x0591, 0x0576, 0x0305, 0x0305, 0x054d, 0x05a0, - 0x0305, 0x0549, 0x05ae, 0x0558, 0x0305, 0x0305, 0x0309, 0x0567, - 0x0546, 0x0549, 0x0305, 0x0557, 0x0305, 0x0305, 0x0305, 0x054c, - 0x0305, 0x0305, 0x0305, 0x05bd, 0x0305, 0x0305, 0x05c2, 0x05d1, - 0x0546, 0x0549, 0x0305, 0x0558, 0x0305, 0x0305, 0x0309, 0x05df, - 0x0305, 0x0549, 0x0305, 0x038b, 0x0305, 0x0305, 0x057b, 0x0567, - 0x0305, 0x0549, 0x0305, 0x0558, 0x0305, 0x0305, 0x0305, 0x054f, - 0x05ed, 0x0305, 0x0305, 0x0305, 0x0538, 0x05f6, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0605, 0x05b0, 0x0305, 0x0305, - 0x0305, 0x0543, 0x0305, 0x0612, 0x0305, 0x0305, 0x0305, 0x0337, - 0x0622, 0x062f, 0x0318, 0x031b, 0x0553, 0x0305, 0x0305, 0x0305, - 0x055b, 0x063e, 0x0305, 0x057e, 0x0457, 0x064d, 0x065b, 0x0308, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x055b, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0669, 0x0305, 0x0549, 0x0305, 0x0549, 0x0305, 0x0549, - 0x0305, 0x0305, 0x0305, 0x0675, 0x030f, 0x067f, 0x0305, 0x0305, - 0x068d, 0x0305, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x069d, - 0x06a8, 0x03b7, 0x06af, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x06bf, 0x06cd, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x06d9, 0x0305, - 0x0305, 0x0305, 0x06e5, 0x06f3, 0x0700, 0x0305, 0x0305, 0x0305, - 0x0318, 0x0319, 0x0305, 0x0305, 0x0305, 0x0389, 0x0305, 0x0305, - 0x0710, 0x0557, 0x0305, 0x071d, 0x0389, 0x038b, 0x0305, 0x072d, - 0x0305, 0x0305, 0x0305, 0x073b, 0x038b, 0x0305, 0x0305, 0x055c, - 0x074a, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x050c, 0x075a, 0x0763, 0x076d, 0x0305, 0x0597, - 0x0305, 0x0305, 0x0305, 0x077b, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0318, 0x0318, 0x0457, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0306, 0x038b, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0306, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0318, 0x0318, 0x0305, 0x0305, 0x055e, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x078b, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0306, 0x079b, 0x0305, - 0x055a, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x038b, 0x07a9, - 0x0305, 0x07b5, 0x0305, 0x03b7, 0x03b7, 0x03b7, 0x07c5, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0547, 0x0305, 0x0318, 0x0577, 0x0305, - 0x0305, 0x07cf, 0x0305, 0x034f, 0x038b, 0x0305, 0x0305, 0x038a, - 0x0305, 0x0305, 0x07dd, 0x0305, 0x0305, 0x0554, 0x0305, 0x0305, - 0x05af, 0x07e8, 0x07f5, 0x0305, 0x0305, 0x054d, 0x0305, 0x0305, - 0x0305, 0x0805, 0x0558, 0x0305, 0x057a, 0x0553, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0815, 0x0305, 0x0307, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0318, 0x0305, 0x0318, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0306, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, - 0x0305, 0x0305, 0x0305, 0x0305, 0x0823, + 0x01e9, 0x01f4, 0x01f4, 0x0204, 0x020c, 0x0215, 0x0224, 0x0234, + 0x0244, 0x0254, 0x0264, 0x0274, 0x0284, 0x0294, 0x02a2, 0x02b1, + 0x02bf, 0x01f4, 0x01f4, 0x02ca, 0x01f4, 0x01f4, 0x01f4, 0x02d9, + 0x02e9, 0x02f7, 0x0306, 0x0316, 0x0326, 0x01f8, 0x01f4, 0x01f4, + 0x0336, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x0346, 0x0356, 0x01f4, 0x01f4, + 0x0366, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x0370, 0x01f4, 0x0380, 0x0390, 0x039f, 0x03af, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x03be, 0x01f4, 0x01f4, 0x03ce, 0x03de, 0x01f4, + 0x03ee, 0x03fe, 0x040d, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x041d, 0x042c, 0x01f4, 0x043c, 0x0442, 0x044f, 0x045f, + 0x046f, 0x047d, 0x048d, 0x049a, 0x04a7, 0x04b5, 0x04c4, 0x04d2, + 0x04df, 0x04ef, 0x01f4, 0x04fc, 0x0509, 0x0513, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x0523, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x0527, 0x0537, + 0x01f4, 0x01f4, 0x01f4, 0x0543, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x0552, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x0562, 0x01f4, 0x056c, 0x0578, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x0588, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x0598, 0x0537, 0x059e, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x05ad, 0x05bd, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x05cd, 0x05dd, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, + /* level 3 offsets */ + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05f0, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, + 0x0600, 0x0600, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0610, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ff, 0x0600, 0x0620, + 0x062e, 0x05ed, 0x05ed, 0x05ed, 0x063e, 0x064e, 0x065d, 0x0665, + 0x0600, 0x0675, 0x0685, 0x068d, 0x0695, 0x069f, 0x069f, 0x06af, + 0x06bf, 0x06c7, 0x06d7, 0x05ee, 0x06e7, 0x06f6, 0x0600, 0x0706, + 0x0714, 0x0720, 0x072f, 0x05ed, 0x05ed, 0x061a, 0x073f, 0x0745, + 0x069f, 0x074f, 0x075b, 0x05ed, 0x0769, 0x0775, 0x05ed, 0x0785, + 0x0791, 0x07a1, 0x07b1, 0x07be, 0x0636, 0x07ce, 0x07dd, 0x07e7, + 0x0600, 0x07f5, 0x0600, 0x0672, 0x05ed, 0x05ed, 0x0805, 0x0814, + 0x0823, 0x0831, 0x05ed, 0x0840, 0x05ed, 0x05ed, 0x0835, 0x084f, + 0x05ed, 0x0831, 0x05ef, 0x085e, 0x05ed, 0x05ed, 0x0835, 0x086d, + 0x0840, 0x05ed, 0x0879, 0x085e, 0x05ed, 0x05ed, 0x0835, 0x0888, + 0x05ed, 0x0831, 0x0896, 0x0840, 0x05ed, 0x05ed, 0x05f1, 0x084f, + 0x082e, 0x0831, 0x05ed, 0x083f, 0x05ed, 0x05ed, 0x05ed, 0x0834, + 0x05ed, 0x05ed, 0x05ed, 0x08a5, 0x05ed, 0x05ed, 0x08aa, 0x08b9, + 0x082e, 0x0831, 0x05ed, 0x0840, 0x05ed, 0x05ed, 0x05f1, 0x08c7, + 0x05ed, 0x0831, 0x05ed, 0x0673, 0x05ed, 0x05ed, 0x0863, 0x084f, + 0x05ed, 0x0831, 0x05ed, 0x0840, 0x05ed, 0x05ed, 0x05ed, 0x0837, + 0x08d5, 0x05ed, 0x05ed, 0x05ed, 0x0820, 0x08de, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x08ed, 0x0898, 0x05ed, 0x05ed, + 0x05ed, 0x082b, 0x05ed, 0x08fa, 0x05ed, 0x05ed, 0x05ed, 0x061f, + 0x090a, 0x0917, 0x0600, 0x0603, 0x083b, 0x05ed, 0x05ed, 0x05ed, + 0x0843, 0x0926, 0x05ed, 0x0866, 0x073f, 0x0935, 0x0943, 0x05f0, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0843, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0951, 0x05ed, 0x0831, 0x05ed, 0x0831, 0x05ed, 0x0831, + 0x05ed, 0x05ed, 0x05ed, 0x095d, 0x05f7, 0x0967, 0x05ed, 0x05ed, + 0x0975, 0x05ed, 0x069f, 0x069f, 0x069f, 0x069f, 0x069f, 0x0985, + 0x0990, 0x069f, 0x0997, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x09a7, 0x09b5, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x09c1, 0x05ed, + 0x05ed, 0x05ed, 0x09cd, 0x09db, 0x09e8, 0x05ed, 0x05ed, 0x05ed, + 0x0600, 0x0601, 0x05ed, 0x05ed, 0x05ed, 0x0671, 0x05ed, 0x05ed, + 0x09f8, 0x083f, 0x05ed, 0x0a05, 0x0671, 0x0673, 0x05ed, 0x0a15, + 0x05ed, 0x05ed, 0x05ed, 0x0a23, 0x0673, 0x05ed, 0x05ed, 0x0844, + 0x0a32, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x07f4, 0x0a42, 0x0a4b, 0x0a55, 0x05ed, 0x087f, + 0x05ed, 0x05ed, 0x05ed, 0x0a63, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x0600, 0x0600, 0x073f, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ee, 0x0673, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ee, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0600, 0x0600, 0x05ed, 0x05ed, 0x0846, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0a73, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ee, 0x0a83, 0x05ed, + 0x0842, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0673, 0x0a91, + 0x05ed, 0x0a9d, 0x05ed, 0x069f, 0x069f, 0x069f, 0x0aad, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x082f, 0x05ed, 0x0600, 0x085f, 0x05ed, + 0x05ed, 0x0ab7, 0x05ed, 0x0637, 0x0673, 0x05ed, 0x05ed, 0x0672, + 0x05ed, 0x05ed, 0x0ac5, 0x05ed, 0x05ed, 0x083c, 0x05ed, 0x05ed, + 0x0897, 0x0ad0, 0x0add, 0x05ed, 0x05ed, 0x0835, 0x05ed, 0x05ed, + 0x05ed, 0x0aed, 0x0840, 0x05ed, 0x0862, 0x083b, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0afd, 0x05ed, 0x05ef, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0600, 0x05ed, 0x0600, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ee, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0b0b, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05f0, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x073f, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0b17, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0b26, 0x05ed, 0x05ed, 0x0b36, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x0b46, 0x0b54, 0x0b63, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0b71, 0x0b81, 0x0b88, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0b98, 0x069f, 0x0ba6, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0863, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0bb6, 0x0bc1, 0x0bd0, 0x05ed, 0x0be0, 0x0bee, 0x05ed, + 0x05ed, 0x0bfe, 0x0c0e, 0x05ed, 0x05ed, 0x05ed, 0x0840, 0x05ed, + 0x05ed, 0x0636, 0x07fe, 0x05ed, 0x05ed, 0x0c1e, 0x0673, 0x05ed, + 0x05ed, 0x0c2a, 0x083f, 0x05ed, 0x05ed, 0x05ed, 0x0672, 0x05ed, + 0x0c35, 0x0670, 0x05ed, 0x05ed, 0x05ed, 0x083e, 0x0673, 0x05ed, + 0x05ed, 0x0c45, 0x0c24, 0x05ed, 0x05ed, 0x05ed, 0x05ee, 0x0c52, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ee, 0x0c61, 0x05ed, 0x0673, 0x05ed, 0x05ed, 0x0863, + 0x073f, 0x05ed, 0x0c6c, 0x0670, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0636, 0x08d5, 0x05ef, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0c79, 0x0c88, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0c96, 0x073f, 0x0862, 0x05ed, 0x05ed, 0x05ed, 0x0ca6, + 0x073f, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0cb6, 0x0cc6, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0843, 0x0cd4, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ee, 0x0ce4, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0cef, 0x083e, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0c29, 0x073f, 0x05ed, 0x0cfe, 0x05ed, + 0x05ed, 0x0d0b, 0x083a, 0x0d1a, 0x05ed, 0x05ed, 0x0896, 0x0ce5, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0920, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05fe, 0x0d2a, 0x0d39, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0d48, 0x0cc6, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0d57, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0830, 0x05ed, 0x05ed, 0x05ed, 0x07fc, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0670, 0x05ed, 0x05ed, + 0x05ed, 0x07fe, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ee, 0x05ed, + 0x05ed, 0x05ed, 0x05ee, 0x0672, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x083d, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x0861, 0x0671, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0600, 0x0600, 0x0602, 0x0600, 0x07fe, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x0b0d, 0x061d, 0x0d67, 0x05ed, 0x0846, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x0951, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0600, + 0x0600, 0x0600, 0x0d6c, 0x0600, 0x0600, 0x0603, 0x083c, 0x083d, + 0x0a05, 0x05ff, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0d77, + 0x0d7f, 0x0d8d, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ef, + 0x05ed, 0x05ed, 0x05ed, 0x0844, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x07fe, 0x05ed, 0x05ed, 0x069f, 0x069f, 0x069f, 0x069f, + 0x0d9d, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0840, 0x05ed, 0x0600, 0x0600, + 0x0600, 0x0600, 0x0600, 0x0600, 0x05ed, 0x05ed, 0x05ed, 0x05ed, + 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x0600, 0x0600, 0x0600, 0x0600, + 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, + 0x0600, 0x0600, 0x0600, 0x05ed, /* values */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -271,5 +366,87 @@ const unsigned short DECLSPEC_HIDDEN arabic_shaping_table[2099] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0000, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, - 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000 + 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0006, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0000, + 0x0002, 0x0000, 0x0002, 0x0002, 0x0000, 0x0000, 0x0001, 0x0002, + 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0001, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0003, 0x0003, 0x0002, + 0x0000, 0x0000, 0x0002, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, 0x0003, 0x0002, + 0x0002, 0x0002, 0x0003, 0x0003, 0x0003, 0x0002, 0x0003, 0x0003, + 0x0002, 0x0003, 0x0002, 0x0002, 0x0003, 0x0002, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0003, 0x0003, 0x0000, 0x0001, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0002, 0x0003, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0003, 0x0003, 0x0003, 0x0002, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0003, 0x0003, 0x0003, 0x0002, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0003, 0x0003, 0x0003, 0x0003, 0x0002, + 0x0002, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0003, 0x0000, 0x0003, 0x0003, 0x0002, 0x0002, 0x0002, + 0x0000, 0x0003, 0x0002, 0x0002, 0x0003, 0x0003, 0x0002, 0x0003, + 0x0003, 0x0000, 0x0003, 0x0002, 0x0002, 0x0003, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0002, 0x0003, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, + 0x0000, 0x0006, 0x0000, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0000, 0x0000, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0006, 0x0006, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000, + 0x0006, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, 0x0000, + 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0006, 0x0000, + 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, + 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, + 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000, + 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, + 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, + 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, + 0x0000, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0006, + 0x0006, 0x0000, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0006, + 0x0000, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000 }; diff --git a/tools/make_unicode b/tools/make_unicode index 8127bf3c388..b815fd1ceec 100755 --- a/tools/make_unicode +++ b/tools/make_unicode @@ -3157,7 +3157,7 @@ sub dump_arabic_shaping($) print OUTPUT "/* DO NOT EDIT!! */\n\n"; print OUTPUT "#include "windef.h"\n\n";
- dump_two_level_mapping( "arabic_shaping_table", 0, 16, @joining_table ); + dump_three_level_mapping( "arabic_shaping_table", 0, 16, @joining_table );
close OUTPUT; save_file($filename);