hb-ot-shape-complex-arabic-table.hh 14.3 KB
Newer Older
1 2 3 4
/* == Start of generated table == */
/*
 * The following table is generated by running:
 *
5
 *   ./gen-arabic-table.py ArabicShaping.txt UnicodeData.txt Blocks.txt
6
 *
B
Minor  
Behdad Esfahbod 已提交
7
 * on files with these headers:
8
 *
B
Behdad Esfahbod 已提交
9 10
 * # ArabicShaping-6.2.0.txt
 * # Date: 2012-05-15, 21:05:00 GMT [KW]
11 12
 * # Blocks-6.2.0.txt
 * # Date: 2012-05-14, 22:42:00 GMT [KW, LI]
13
 * UnicodeData.txt does not have a header.
14
 */
B
Behdad Esfahbod 已提交
15 16 17 18

#ifndef HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH
#define HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH

19

20 21 22 23 24 25 26 27
#define X	JOINING_TYPE_X
#define R	JOINING_TYPE_R
#define U	JOINING_TYPE_U
#define A	JOINING_GROUP_ALAPH
#define DR	JOINING_GROUP_DALATH_RISH
#define C	JOINING_TYPE_C
#define D	JOINING_TYPE_D

28
static const uint8_t joining_table[] =
29
{
30

31
#define joining_offset_0x0600 0
32

33
  /* Arabic */
34

35 36 37 38 39 40 41 42
  /* 0600 */ U,U,U,U,U,X,X,X,U,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
  /* 0620 */ D,U,R,R,R,R,D,R,D,R,D,D,D,D,D,R,R,R,R,D,D,D,D,D,D,D,D,D,D,D,D,D,
  /* 0640 */ C,D,D,D,D,D,D,D,R,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
  /* 0660 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,D,D,X,R,R,R,U,R,R,R,D,D,D,D,D,D,D,D,
  /* 0680 */ D,D,D,D,D,D,D,D,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,D,D,D,D,D,D,
  /* 06A0 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
  /* 06C0 */ R,D,D,R,R,R,R,R,R,R,R,R,D,R,D,R,D,D,R,R,X,R,X,X,X,X,X,X,X,U,X,X,
  /* 06E0 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,R,R,X,X,X,X,X,X,X,X,X,X,D,D,D,X,X,D,
43

44
  /* Syriac */
45

46 47 48
  /* 0700 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,A,X,D,D,D,DR,DR,R,R,R,D,D,D,D,R,D,
  /* 0720 */ D,D,D,D,D,D,D,D,R,D,DR,D,R,D,D,DR,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
  /* 0740 */ X,X,X,X,X,X,X,X,X,X,X,X,X,R,D,D,
49

50
  /* Arabic Supplement */
51

52
  /* 0740 */                                 D,D,D,D,D,D,D,D,D,R,R,R,D,D,D,D,
53
  /* 0760 */ D,D,D,D,D,D,D,D,D,D,D,R,R,D,D,D,D,R,D,R,R,D,D,D,R,R,D,D,D,D,D,D,
54

B
Behdad Esfahbod 已提交
55 56 57 58
  /* FILLER */

  /* 0780 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
  /* 07A0 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
59 60 61

  /* NKo */

B
Behdad Esfahbod 已提交
62 63
  /* 07C0 */ X,X,X,X,X,X,X,X,X,X,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
  /* 07E0 */ D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,C,X,X,X,X,X,
64

B
Behdad Esfahbod 已提交
65
  /* FILLER */
66

B
Behdad Esfahbod 已提交
67 68
  /* 0800 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
  /* 0820 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
69

B
Behdad Esfahbod 已提交
70
  /* Mandaic */
71

B
Behdad Esfahbod 已提交
72 73 74
  /* 0840 */ R,D,D,D,D,D,R,D,D,R,D,D,D,D,D,R,D,D,D,D,R,D,U,U,U,X,X,X,X,X,X,X,
  /* 0860 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
  /* 0880 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
75 76 77

  /* Arabic Extended-A */

78
  /* 08A0 */ D,X,D,D,D,D,D,D,D,D,R,R,R,
79

B
Behdad Esfahbod 已提交
80
}; /* Table items: 685; occupancy: 45% */
81 82 83 84 85


static unsigned int
joining_type (hb_codepoint_t u)
{
B
Behdad Esfahbod 已提交
86
  switch (u >> 12)
87
  {
B
Behdad Esfahbod 已提交
88 89
    case 0x0:
      if (0x0600 <= u && u <= 0x08AC) return joining_table[u - 0x0600 + joining_offset_0x0600];
90 91 92 93 94 95 96
      break;

    default:
      break;
  }
  return X;
}
97

98 99 100 101 102 103 104 105
#undef X
#undef R
#undef U
#undef A
#undef DR
#undef C
#undef D

106 107 108

static const uint16_t shaping_table[][4] =
{
109 110 111 112 113
  {0x0000, 0x0000, 0x0000, 0xFE80}, /* U+0621 ARABIC LETTER HAMZA ISOLATED FORM */
  {0x0000, 0x0000, 0xFE82, 0xFE81}, /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */
  {0x0000, 0x0000, 0xFE84, 0xFE83}, /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */
  {0x0000, 0x0000, 0xFE86, 0xFE85}, /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */
  {0x0000, 0x0000, 0xFE88, 0xFE87}, /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */
114
  {0xFE8B, 0xFE8C, 0xFE8A, 0xFE89}, /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */
115
  {0x0000, 0x0000, 0xFE8E, 0xFE8D}, /* U+0627 ARABIC LETTER ALEF */
116
  {0xFE91, 0xFE92, 0xFE90, 0xFE8F}, /* U+0628 ARABIC LETTER BEH */
117
  {0x0000, 0x0000, 0xFE94, 0xFE93}, /* U+0629 ARABIC LETTER TEH MARBUTA */
118 119 120 121 122
  {0xFE97, 0xFE98, 0xFE96, 0xFE95}, /* U+062A ARABIC LETTER TEH */
  {0xFE9B, 0xFE9C, 0xFE9A, 0xFE99}, /* U+062B ARABIC LETTER THEH */
  {0xFE9F, 0xFEA0, 0xFE9E, 0xFE9D}, /* U+062C ARABIC LETTER JEEM */
  {0xFEA3, 0xFEA4, 0xFEA2, 0xFEA1}, /* U+062D ARABIC LETTER HAH */
  {0xFEA7, 0xFEA8, 0xFEA6, 0xFEA5}, /* U+062E ARABIC LETTER KHAH */
123 124 125 126
  {0x0000, 0x0000, 0xFEAA, 0xFEA9}, /* U+062F ARABIC LETTER DAL */
  {0x0000, 0x0000, 0xFEAC, 0xFEAB}, /* U+0630 ARABIC LETTER THAL */
  {0x0000, 0x0000, 0xFEAE, 0xFEAD}, /* U+0631 ARABIC LETTER REH */
  {0x0000, 0x0000, 0xFEB0, 0xFEAF}, /* U+0632 ARABIC LETTER ZAIN */
127 128 129 130 131 132 133 134
  {0xFEB3, 0xFEB4, 0xFEB2, 0xFEB1}, /* U+0633 ARABIC LETTER SEEN */
  {0xFEB7, 0xFEB8, 0xFEB6, 0xFEB5}, /* U+0634 ARABIC LETTER SHEEN */
  {0xFEBB, 0xFEBC, 0xFEBA, 0xFEB9}, /* U+0635 ARABIC LETTER SAD */
  {0xFEBF, 0xFEC0, 0xFEBE, 0xFEBD}, /* U+0636 ARABIC LETTER DAD */
  {0xFEC3, 0xFEC4, 0xFEC2, 0xFEC1}, /* U+0637 ARABIC LETTER TAH */
  {0xFEC7, 0xFEC8, 0xFEC6, 0xFEC5}, /* U+0638 ARABIC LETTER ZAH */
  {0xFECB, 0xFECC, 0xFECA, 0xFEC9}, /* U+0639 ARABIC LETTER AIN */
  {0xFECF, 0xFED0, 0xFECE, 0xFECD}, /* U+063A ARABIC LETTER GHAIN */
135 136 137 138 139 140
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063B  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063C  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063D  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063E  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063F  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0640  */
141 142 143 144 145 146 147
  {0xFED3, 0xFED4, 0xFED2, 0xFED1}, /* U+0641 ARABIC LETTER FEH */
  {0xFED7, 0xFED8, 0xFED6, 0xFED5}, /* U+0642 ARABIC LETTER QAF */
  {0xFEDB, 0xFEDC, 0xFEDA, 0xFED9}, /* U+0643 ARABIC LETTER KAF */
  {0xFEDF, 0xFEE0, 0xFEDE, 0xFEDD}, /* U+0644 ARABIC LETTER LAM */
  {0xFEE3, 0xFEE4, 0xFEE2, 0xFEE1}, /* U+0645 ARABIC LETTER MEEM */
  {0xFEE7, 0xFEE8, 0xFEE6, 0xFEE5}, /* U+0646 ARABIC LETTER NOON */
  {0xFEEB, 0xFEEC, 0xFEEA, 0xFEE9}, /* U+0647 ARABIC LETTER HEH */
148
  {0x0000, 0x0000, 0xFEEE, 0xFEED}, /* U+0648 ARABIC LETTER WAW */
149 150
  {0xFBE8, 0xFBE9, 0xFEF0, 0xFEEF}, /* U+0649 ARABIC LETTER */
  {0xFEF3, 0xFEF4, 0xFEF2, 0xFEF1}, /* U+064A ARABIC LETTER YEH */
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064B  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064C  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064D  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064E  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064F  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0650  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0651  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0652  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0653  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0654  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0655  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0656  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0657  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0658  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0659  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065A  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065B  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065C  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065D  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065E  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065F  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0660  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0661  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0662  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0663  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0664  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0665  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0666  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0667  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0668  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0669  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066A  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066B  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066C  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066D  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066E  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066F  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0670  */
  {0x0000, 0x0000, 0xFB51, 0xFB50}, /* U+0671 ARABIC LETTER ALEF WASLA */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0672  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0673  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0674  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0675  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0676  */
  {0x0000, 0x0000, 0x0000, 0xFBDD}, /* U+0677 ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0678  */
197 198 199
  {0xFB68, 0xFB69, 0xFB67, 0xFB66}, /* U+0679 ARABIC LETTER TTEH */
  {0xFB60, 0xFB61, 0xFB5F, 0xFB5E}, /* U+067A ARABIC LETTER TTEHEH */
  {0xFB54, 0xFB55, 0xFB53, 0xFB52}, /* U+067B ARABIC LETTER BEEH */
200 201
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+067C  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+067D  */
202 203 204
  {0xFB58, 0xFB59, 0xFB57, 0xFB56}, /* U+067E ARABIC LETTER PEH */
  {0xFB64, 0xFB65, 0xFB63, 0xFB62}, /* U+067F ARABIC LETTER TEHEH */
  {0xFB5C, 0xFB5D, 0xFB5B, 0xFB5A}, /* U+0680 ARABIC LETTER BEHEH */
205 206
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0681  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0682  */
207 208
  {0xFB78, 0xFB79, 0xFB77, 0xFB76}, /* U+0683 ARABIC LETTER NYEH */
  {0xFB74, 0xFB75, 0xFB73, 0xFB72}, /* U+0684 ARABIC LETTER DYEH */
209
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0685  */
210 211
  {0xFB7C, 0xFB7D, 0xFB7B, 0xFB7A}, /* U+0686 ARABIC LETTER TCHEH */
  {0xFB80, 0xFB81, 0xFB7F, 0xFB7E}, /* U+0687 ARABIC LETTER TCHEHEH */
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
  {0x0000, 0x0000, 0xFB89, 0xFB88}, /* U+0688 ARABIC LETTER DDAL */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0689  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+068A  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+068B  */
  {0x0000, 0x0000, 0xFB85, 0xFB84}, /* U+068C ARABIC LETTER DAHAL */
  {0x0000, 0x0000, 0xFB83, 0xFB82}, /* U+068D ARABIC LETTER DDAHAL */
  {0x0000, 0x0000, 0xFB87, 0xFB86}, /* U+068E ARABIC LETTER DUL */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+068F  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0690  */
  {0x0000, 0x0000, 0xFB8D, 0xFB8C}, /* U+0691 ARABIC LETTER RREH */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0692  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0693  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0694  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0695  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0696  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0697  */
  {0x0000, 0x0000, 0xFB8B, 0xFB8A}, /* U+0698 ARABIC LETTER JEH */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0699  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069A  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069B  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069C  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069D  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069E  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069F  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A0  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A1  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A2  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A3  */
240
  {0xFB6C, 0xFB6D, 0xFB6B, 0xFB6A}, /* U+06A4 ARABIC LETTER VEH */
241
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A5  */
242
  {0xFB70, 0xFB71, 0xFB6F, 0xFB6E}, /* U+06A6 ARABIC LETTER PEHEH */
243 244
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A7  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A8  */
245
  {0xFB90, 0xFB91, 0xFB8F, 0xFB8E}, /* U+06A9 ARABIC LETTER KEHEH */
246 247 248
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AA  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AB  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AC  */
249
  {0xFBD5, 0xFBD6, 0xFBD4, 0xFBD3}, /* U+06AD ARABIC LETTER NG */
250
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AE  */
251
  {0xFB94, 0xFB95, 0xFB93, 0xFB92}, /* U+06AF ARABIC LETTER GAF */
252
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B0  */
253
  {0xFB9C, 0xFB9D, 0xFB9B, 0xFB9A}, /* U+06B1 ARABIC LETTER NGOEH */
254
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B2  */
255
  {0xFB98, 0xFB99, 0xFB97, 0xFB96}, /* U+06B3 ARABIC LETTER GUEH */
256 257 258 259 260 261 262
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B4  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B5  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B6  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B7  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B8  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B9  */
  {0x0000, 0x0000, 0xFB9F, 0xFB9E}, /* U+06BA ARABIC LETTER NOON GHUNNA */
263
  {0xFBA2, 0xFBA3, 0xFBA1, 0xFBA0}, /* U+06BB ARABIC LETTER RNOON */
264 265
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06BC  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06BD  */
266
  {0xFBAC, 0xFBAD, 0xFBAB, 0xFBAA}, /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
267 268
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06BF  */
  {0x0000, 0x0000, 0xFBA5, 0xFBA4}, /* U+06C0 ARABIC LETTER HEH WITH YEH ABOVE */
269
  {0xFBA8, 0xFBA9, 0xFBA7, 0xFBA6}, /* U+06C1 ARABIC LETTER HEH GOAL */
270 271 272 273 274 275 276 277 278 279
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06C2  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06C3  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06C4  */
  {0x0000, 0x0000, 0xFBE1, 0xFBE0}, /* U+06C5 ARABIC LETTER KIRGHIZ OE */
  {0x0000, 0x0000, 0xFBDA, 0xFBD9}, /* U+06C6 ARABIC LETTER OE */
  {0x0000, 0x0000, 0xFBD8, 0xFBD7}, /* U+06C7 ARABIC LETTER U */
  {0x0000, 0x0000, 0xFBDC, 0xFBDB}, /* U+06C8 ARABIC LETTER YU */
  {0x0000, 0x0000, 0xFBE3, 0xFBE2}, /* U+06C9 ARABIC LETTER KIRGHIZ YU */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CA  */
  {0x0000, 0x0000, 0xFBDF, 0xFBDE}, /* U+06CB ARABIC LETTER VE */
280
  {0xFBFE, 0xFBFF, 0xFBFD, 0xFBFC}, /* U+06CC ARABIC LETTER FARSI YEH */
281 282 283
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CD  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CE  */
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CF  */
284
  {0xFBE6, 0xFBE7, 0xFBE5, 0xFBE4}, /* U+06D0 ARABIC LETTER E */
285 286 287
  {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06D1  */
  {0x0000, 0x0000, 0xFBAF, 0xFBAE}, /* U+06D2 ARABIC LETTER YEH BARREE */
  {0x0000, 0x0000, 0xFBB1, 0xFBB0}, /* U+06D3 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE */
288 289 290 291 292 293
};

#define SHAPING_TABLE_FIRST	0x0621
#define SHAPING_TABLE_LAST	0x06D3


294
static const struct ligature_set_t {
295
 uint16_t first;
296
 struct ligature_pairs_t {
297 298 299 300
   uint16_t second;
   uint16_t ligature;
 } ligatures[4];
} ligature_table[] =
301
{
302 303 304 305 306 307 308 309 310 311 312 313
  { 0xFEDF, {
    { 0xFE88, 0xFEF9 }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM */
    { 0xFE82, 0xFEF5 }, /* ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM */
    { 0xFE8E, 0xFEFB }, /* ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM */
    { 0xFE84, 0xFEF7 }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM */
  }},
  { 0xFEE0, {
    { 0xFE88, 0xFEFA }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM */
    { 0xFE82, 0xFEF6 }, /* ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM */
    { 0xFE8E, 0xFEFC }, /* ARABIC LIGATURE LAM WITH ALEF FINAL FORM */
    { 0xFE84, 0xFEF8 }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM */
  }},
314 315 316
};


B
Behdad Esfahbod 已提交
317 318
#endif /* HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH */

319
/* == End of generated table == */