X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fencoding.C;h=fea073554195d4f413af251a6aa6a03295c95587;hb=501f1dd61b6c0beb927151ecf331f78848261b59;hp=71749a83810706994d0547c131016117c1a1479e;hpb=1dc25c472f3001b5e558f6dc4d471d8c4401fb1d;p=lyx.git diff --git a/src/encoding.C b/src/encoding.C index 71749a8381..fea0735541 100644 --- a/src/encoding.C +++ b/src/encoding.C @@ -103,24 +103,24 @@ Uchar tab_symbol[256] = { unsigned char arabic_table2[63][4] = { {0x41, 0x41, 0x41, 0x41}, // 0xc1 = hamza - {0x42, 0xa1, 0x42, 0x42}, // 0xc2 = ligature madda on alef - {0x43, 0xa2, 0x43, 0x43}, // 0xc3 = ligature hamza on alef - {0x44, 0xa3, 0x44, 0x44}, // 0xc4 = ligature hamza on waw - {0x45, 0xa4, 0x45, 0x45}, // 0xc5 = ligature hamza under alef - {0xf9, 0xf9, 0xf8, 0xa0}, // 0xc6 = ligature hamza on ya - {0x47, 0xa5, 0xa5, 0xa5}, // 0xc7 = alef + {0x42, 0xa1, 0x42, 0xa1}, // 0xc2 = ligature madda on alef + {0x43, 0xa2, 0x43, 0xa2}, // 0xc3 = ligature hamza on alef + {0x44, 0xa3, 0x44, 0xa3}, // 0xc4 = ligature hamza on waw + {0x45, 0xa4, 0x45, 0xa4}, // 0xc5 = ligature hamza under alef + {0x46, 0xf9, 0xf8, 0xa0}, // 0xc6 = ligature hamza on ya + {0x47, 0xa5, 0x47, 0xa5}, // 0xc7 = alef {0x48, 0xae, 0xac, 0xad}, // 0xc8 = baa - {0x49, 0xb1, 0xaf, 0xb0}, // 0xc9 = taa marbuta + {0x49, 0xb1, 0x49, 0xb1}, // 0xc9 = taa marbuta {0x4a, 0xb4, 0xb2, 0xb3}, // 0xca = taa {0x4b, 0xb7, 0xb5, 0xb6}, // 0xcb = thaa {0x4c, 0xba, 0xb8, 0xb9}, // 0xcc = jeem {0x4d, 0xbd, 0xbb, 0xbc}, // 0xcd = haa {0x4e, 0xc0, 0xbe, 0xbf}, // 0xce = khaa - {0x4f, 0xa6, 0xa6, 0xa6}, // 0xcf = dal + {0x4f, 0xa6, 0x4f, 0xa6}, // 0xcf = dal - {0x50, 0xa7, 0xa7, 0xa7}, // 0xd0 = thal - {0x51, 0xa8, 0xa8, 0xa8}, // 0xd1 = ra - {0x52, 0xa9, 0xa9, 0xa9}, // 0xd2 = zain + {0x50, 0xa7, 0x50, 0xa7}, // 0xd0 = thal + {0x51, 0xa8, 0x51, 0xa8}, // 0xd1 = ra + {0x52, 0xa9, 0x52, 0xa9}, // 0xd2 = zain {0x53, 0xc3, 0xc1, 0xc2}, // 0xd3 = seen {0x54, 0xc6, 0xc4, 0xc5}, // 0xd4 = sheen {0x55, 0xc9, 0xc7, 0xc8}, // 0xd5 = sad @@ -143,8 +143,8 @@ unsigned char arabic_table2[63][4] = { {0x65, 0xe7, 0xe5, 0xe6}, // 0xe5 = meem {0x66, 0xea, 0xe8, 0xe9}, // 0xe6 = noon {0x67, 0xed, 0xeb, 0xec}, // 0xe7 = ha - {0x68, 0xaa, 0xaa, 0xaa}, // 0xe8 = waw - {0x69, 0xab, 0xab, 0xab}, // 0xe9 = alef maksura + {0x68, 0xaa, 0x68, 0xaa}, // 0xe8 = waw + {0x69, 0xab, 0x69, 0xab}, // 0xe9 = alef maksura {0x6a, 0xf0, 0xee, 0xef}, // 0xea = ya {0x6b, 0x6b, 0x6b, 0x6b}, // 0xeb = fathatan {0x6c, 0x6c, 0x6c, 0x6c}, // 0xec = dammatan @@ -253,6 +253,19 @@ bool Encodings::IsComposeChar_hebrew(unsigned char c) } +// Special Arabic letters are ones that do not get connected from left +// they are hamza, alef_madda, alef_hamza, waw_hamza, alef_hamza_under, +// alef, tah_marbota, dal, thal, rah, zai, wow, alef_maksoura + +bool Encodings::is_arabic_special(unsigned char c) +{ + return (c >= 0xc1 && c <= 0xc5) || + c == 0xc7 || c == 0xc9 || + c == 0xcf || c == 0xe8 || + (c >= 0xd0 && c <= 0xd2) || + c == 0xe9; +} + bool Encodings::IsComposeChar_arabic(unsigned char c) { return c >= 0xeb && c <= 0xf2;