Mohamedfaroouk
Committed by David PHAM-VAN

Fix arabic word issues

@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 ## 3.6.1 3 ## 3.6.1
4 4
5 - Fixes crash when array is empty [Kondamon] 5 - Fixes crash when array is empty [Kondamon]
  6 +- Fix arabic word issues [Mohamedfaroouk]
6 7
7 ## 3.6.0 8 ## 3.6.0
8 9
@@ -19,47 +19,47 @@ @@ -19,47 +19,47 @@
19 const Map<int, dynamic> _arabicSubstitionA = <int, dynamic>{ 19 const Map<int, dynamic> _arabicSubstitionA = <int, dynamic>{
20 0x0640: <int>[0x0640, 0x0640, 0x0640, 0x0640], // ARABIC TATWEEL 20 0x0640: <int>[0x0640, 0x0640, 0x0640, 0x0640], // ARABIC TATWEEL
21 21
22 - 0x0621: <int>[0xFE80], // ARABIC LETTER HAMZA  
23 - 0x0622: <int>[0xFE81, 0xFE82], // ARABIC LETTER ALEF WITH MADDA ABOVE  
24 - 0x0623: <int>[0xFE83, 0xFE84], // ARABIC LETTER ALEF WITH HAMZA ABOVE  
25 - 0x0624: <int>[0xFE85, 0xFE86], // ARABIC LETTER WAW WITH HAMZA ABOVE  
26 - 0x0625: <int>[0xFE87, 0xFE88], // ARABIC LETTER ALEF WITH HAMZA BELOW 22 + 0x0621: <int>[1569], // ARABIC LETTER HAMZA
  23 + 0x0622: <int>[1570, 0xFE82], // ARABIC LETTER ALEF WITH MADDA ABOVE
  24 + 0x0623: <int>[1571, 0xFE84], // ARABIC LETTER ALEF WITH HAMZA ABOVE
  25 + 0x0624: <int>[1572, 0xFE86], // ARABIC LETTER WAW WITH HAMZA ABOVE
  26 + 0x0625: <int>[1573, 0xFE88], // ARABIC LETTER ALEF WITH HAMZA BELOW
27 0x0626: <int>[ 27 0x0626: <int>[
28 - 0xFE89, 28 + 1574,
29 0xFE8A, 29 0xFE8A,
30 0xFE8B, 30 0xFE8B,
31 0xFE8C 31 0xFE8C
32 ], // ARABIC LETTER YEH WITH HAMZA ABOVE 32 ], // ARABIC LETTER YEH WITH HAMZA ABOVE
33 - 0x0627: <int>[0xFE8D, 0xFE8E], // ARABIC LETTER ALEF  
34 - 0x0628: <int>[0xFE8F, 0xFE90, 0xFE91, 0xFE92], // ARABIC LETTER BEH  
35 - 0x0629: <int>[0xFE93, 0xFE94], // ARABIC LETTER TEH MARBUTA  
36 - 0x062A: <int>[0xFE95, 0xFE96, 0xFE97, 0xFE98], // ARABIC LETTER TEH  
37 - 0x062B: <int>[0xFE99, 0xFE9A, 0xFE9B, 0xFE9C], // ARABIC LETTER THEH  
38 - 0x062C: <int>[0xFE9D, 0xFE9E, 0xFE9F, 0xFEA0], // ARABIC LETTER JEEM  
39 - 0x062D: <int>[0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4], // ARABIC LETTER HAH  
40 - 0x062E: <int>[0xFEA5, 0xFEA6, 0xFEA7, 0xFEA8], // ARABIC LETTER KHAH  
41 - 0x062F: <int>[0xFEA9, 0xFEAA], // ARABIC LETTER DAL  
42 - 0x0630: <int>[0xFEAB, 0xFEAC], // ARABIC LETTER THAL  
43 - 0x0631: <int>[0xFEAD, 0xFEAE], // ARABIC LETTER REH  
44 - 0x0632: <int>[0xFEAF, 0xFEB0], // ARABIC LETTER ZAIN  
45 - 0x0633: <int>[0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4], // ARABIC LETTER SEEN  
46 - 0x0634: <int>[0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8], // ARABIC LETTER SHEEN  
47 - 0x0635: <int>[0xFEB9, 0xFEBA, 0xFEBB, 0xFEBC], // ARABIC LETTER SAD  
48 - 0x0636: <int>[0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0], // ARABIC LETTER DAD  
49 - 0x0637: <int>[0xFEC1, 0xFEC2, 0xFEC3, 0xFEC4], // ARABIC LETTER TAH  
50 - 0x0638: <int>[0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8], // ARABIC LETTER ZAH  
51 - 0x0639: <int>[0xFEC9, 0xFECA, 0xFECB, 0xFECC], // ARABIC LETTER AIN  
52 - 0x063A: <int>[0xFECD, 0xFECE, 0xFECF, 0xFED0], // ARABIC LETTER GHAIN  
53 - 0x0641: <int>[0xFED1, 0xFED2, 0xFED3, 0xFED4], // ARABIC LETTER FEH  
54 - 0x0642: <int>[0xFED5, 0xFED6, 0xFED7, 0xFED8], // ARABIC LETTER QAF  
55 - 0x0643: <int>[0xFED9, 0xFEDA, 0xFEDB, 0xFEDC], // ARABIC LETTER KAF  
56 - 0x0644: <int>[0xFEDD, 0xFEDE, 0xFEDF, 0xFEE0], // ARABIC LETTER LAM  
57 - 0x0645: <int>[0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4], // ARABIC LETTER MEEM  
58 - 0x0646: <int>[0xFEE5, 0xFEE6, 0xFEE7, 0xFEE8], // ARABIC LETTER NOON  
59 - 0x0647: <int>[0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC], // ARABIC LETTER HEH  
60 - 0x0648: <int>[0xFEED, 0xFEEE], // ARABIC LETTER WAW  
61 - 0x0649: <int>[0xFEEF, 0xFEF0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA  
62 - 0x064A: <int>[0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4], // ARABIC LETTER YEH 33 + 0x0627: <int>[1575, 0xFE8E], // ARABIC LETTER ALEF
  34 + 0x0628: <int>[1576, 0xFE90, 0xFE91, 0xFE92], // ARABIC LETTER BEH
  35 + 0x0629: <int>[1577, 0xFE94], // ARABIC LETTER TEH MARBUTA
  36 + 0x062A: <int>[1578, 0xFE96, 0xFE97, 0xFE98], // ARABIC LETTER TEH
  37 + 0x062B: <int>[1579, 0xFE9A, 0xFE9B, 0xFE9C], // ARABIC LETTER THEH
  38 + 0x062C: <int>[1580, 0xFE9E, 0xFE9F, 0xFEA0], // ARABIC LETTER JEEM
  39 + 0x062D: <int>[1581, 0xFEA2, 0xFEA3, 0xFEA4], // ARABIC LETTER HAH
  40 + 0x062E: <int>[1582, 0xFEA6, 0xFEA7, 0xFEA8], // ARABIC LETTER KHAH
  41 + 0x062F: <int>[1583, 0xFEAA], // ARABIC LETTER DAL
  42 + 0x0630: <int>[1584, 0xFEAC], // ARABIC LETTER THAL
  43 + 0x0631: <int>[1585, 0xFEAE], // ARABIC LETTER REH
  44 + 0x0632: <int>[1586, 0xFEB0], // ARABIC LETTER ZAIN
  45 + 0x0633: <int>[1587, 0xFEB2, 0xFEB3, 0xFEB4], // ARABIC LETTER SEEN
  46 + 0x0634: <int>[1588, 0xFEB6, 0xFEB7, 0xFEB8], // ARABIC LETTER SHEEN
  47 + 0x0635: <int>[1589, 0xFEBA, 0xFEBB, 0xFEBC], // ARABIC LETTER SAD
  48 + 0x0636: <int>[1590, 0xFEBE, 0xFEBF, 0xFEC0], // ARABIC LETTER DAD
  49 + 0x0637: <int>[1591, 0xFEC2, 0xFEC3, 0xFEC4], // ARABIC LETTER TAH
  50 + 0x0638: <int>[1592, 0xFEC6, 0xFEC7, 0xFEC8], // ARABIC LETTER ZAH
  51 + 0x0639: <int>[1593, 0xFECA, 0xFECB, 0xFECC], // ARABIC LETTER AIN
  52 + 0x063A: <int>[1594, 0xFECE, 0xFECF, 0xFED0], // ARABIC LETTER GHAIN
  53 + 0x0641: <int>[1601, 0xFED2, 0xFED3, 0xFED4], // ARABIC LETTER FEH
  54 + 0x0642: <int>[1602, 0xFED6, 0xFED7, 0xFED8], // ARABIC LETTER QAF
  55 + 0x0643: <int>[1603, 0xFEDA, 0xFEDB, 0xFEDC], // ARABIC LETTER KAF
  56 + 0x0644: <int>[1604, 0xFEDE, 0xFEDF, 0xFEE0], // ARABIC LETTER LAM
  57 + 0x0645: <int>[1605, 0xFEE2, 0xFEE3, 0xFEE4], // ARABIC LETTER MEEM
  58 + 0x0646: <int>[1606, 0xFEE6, 0xFEE7, 0xFEE8], // ARABIC LETTER NOON
  59 + 0x0647: <int>[1607, 0xFEEA, 0xFEEB, 0xFEEC], // ARABIC LETTER HEH
  60 + 0x0648: <int>[1608, 0xFEEE], // ARABIC LETTER WAW
  61 + 0x0649: <int>[1609, 0xFEF0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA
  62 + 0x064A: <int>[1610, 0xFEF2, 0xFEF3, 0xFEF4], // ARABIC LETTER YEH
63 0x0671: <int>[0xFB50, 0xFB51], // ARABIC LETTER ALEF WASLA 63 0x0671: <int>[0xFB50, 0xFB51], // ARABIC LETTER ALEF WASLA
64 0x0677: <int>[0xFBDD], // ARABIC LETTER U WITH HAMZA ABOVE 64 0x0677: <int>[0xFBDD], // ARABIC LETTER U WITH HAMZA ABOVE
65 0x0679: <int>[0xFB66, 0xFB67, 0xFB68, 0xFB69], // ARABIC LETTER TTEH 65 0x0679: <int>[0xFB66, 0xFB67, 0xFB68, 0xFB69], // ARABIC LETTER TTEH
@@ -140,11 +140,11 @@ const Map<int, dynamic> _ligatures = <int, dynamic>{ @@ -140,11 +140,11 @@ const Map<int, dynamic> _ligatures = <int, dynamic>{
140 0xFE88: 0xFEFA, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM 140 0xFE88: 0xFEFA, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
141 0xFE8E: 0xFEFC // ARABIC LIGATURE LAM WITH ALEF FINAL FORM 141 0xFE8E: 0xFEFC // ARABIC LIGATURE LAM WITH ALEF FINAL FORM
142 }, 142 },
143 -// 0xFE8D: <int, dynamic>{  
144 -// 0xFEDF: <int, dynamic>{  
145 -// 0xFEE0: <int, int>{0xFEEA: 0xFDF2}  
146 -// }  
147 -// }, // ALLAH 143 + 0xFE8D: <int, dynamic>{
  144 + 0xFEDF: <int, dynamic>{
  145 + 0xFEE0: <int, int>{0xFEEA: 0xFDF2}
  146 + }
  147 + }, // ALLAH
148 }; 148 };
149 149
150 const List<int> _alfletter = <int>[1570, 1571, 1573, 1575]; 150 const List<int> _alfletter = <int>[1570, 1571, 1573, 1575];
@@ -46,9 +46,9 @@ void main() { @@ -46,9 +46,9 @@ void main() {
46 }); 46 });
47 47
48 test('Arabic Diacritics', () { 48 test('Arabic Diacritics', () {
49 - final a = ArabicText('السلام', <int>[65249, 65276, 65204, 65247, 65165]); 49 + final a = ArabicText('السلام', <int>[1605, 65276, 65204, 65247, 1575]);
50 final b = ArabicText('السَلَاْمٌ', 50 final b = ArabicText('السَلَاْمٌ',
51 - <int>[1612, 65249, 1618, 1614, 65276, 1614, 65204, 65247, 65165]); 51 + <int>[1612, 1605, 1618, 1614, 65276, 1614, 65204, 65247, 1575]);
52 52
53 expect( 53 expect(
54 arabic.convert(a.original).codeUnits, 54 arabic.convert(a.original).codeUnits,