unicode: Add data for high Unicode planes to the Arabic shaping table.

This commit is contained in:
Alexandre Julliard 2022-09-05 12:07:59 +02:00
parent 24da06789e
commit aeff5099fb
3 changed files with 279 additions and 103 deletions

View file

@ -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,

View file

@ -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
};

View file

@ -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);