735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
|
* Bits 5-7 Case delta type: 000 = identity
* 010 = add delta for lower
* 011 = add delta for lower, add 1 for title
* 100 = subtract delta for title/upper
* 101 = sub delta for upper, sub 1 for title
* 110 = sub delta for upper, add delta for lower
*
* Bits 8-21 Reserved for future use.
*
* Bits 22-31 Case delta: delta for case conversions. This should be the
* highest field so we can easily sign extend.
*/
static CONST int groups[] = {
0, 15, 12, 25, 27, 21, 22, 26, 20, 9, 134217793, 28, 19, 134217858,
29, 2, 23, 16, 11, 1178599554, 24, -507510654, 4194369, 4194434,
-834666431, 973078658, -507510719, 1258291330, -817889150, 880803905,
864026689, 859832385, 331350081, 847249473, 851443777, 868220993,
-406847358, 884998209, 876609601, -683671422, 893386817, -545259390,
897581121, 914358337, 910164033, 918552641, 5, -234880894, 8388705,
4194467, 8388770, 331350146, -406847423, -234880959, -545259455,
-1967128511, -683671487, -1979711423, 1883242626, -817889215,
289407041, 297795649, 2017460354, 2030043266, 2021654658, 880803970,
864026754, 859832450, 847249538, 851443842, 868221058, -1241513854,
876609666, 884998274, -2109734782, -2134900606, 893386882, 897581186,
-2042625918, 914358402, 289407106, 910164098, 297795714, 918552706,
4, 6, -352321402, 159383617, 155189313, 268435521, 264241217,
159383682, 155189378, 130023554, 268435586, 264241282, 33554497,
260046978, 239075458, 1, 197132418, 226492546, 33554562, 360710274,
335544450, -29359998, -251658175, 402653314, -29360063, 335544385,
7, 62914625, 62914690, 201326657, 201326722, 8, 402653249, 10,
2130706562, 1182793858, 247464066, -1874853823, -33554302, -33554367,
-310378366, -360710014, -419430270, -536870782, -469761918, -528482174,
-33554365, -37748606, -310378431, -37748669, 155189378, -360710079,
-419430335, -469761983, -536870847, -528482239, 13, 14, -1463812031,
-801111999, -293601215, 117440577, 117440642, 67108938, 67109002,
109051997, 109052061, -2109734847, 1182793793, -2042625983, -1967128446,
-1979711358, 2030043201, -2134900671, 2017460289, 2021654593,
1883242561, 402653314, 2130706497, -1241513919, 18, 17
};
/*
* The following constants are used to determine the category of a
* Unicode character.
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
|
<
>
|
<
|
<
<
>
>
|
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
|
* Bits 5-7 Case delta type: 000 = identity
* 010 = add delta for lower
* 011 = add delta for lower, add 1 for title
* 100 = subtract delta for title/upper
* 101 = sub delta for upper, sub 1 for title
* 110 = sub delta for upper, add delta for lower
*
* Bits 8-14 Reserved for future use.
*
* Bits 15-31 Case delta: delta for case conversions. This should be the
* highest field so we can easily sign extend.
*/
static CONST int groups[] = {
0, 15, 12, 25, 27, 21, 22, 26, 20, 9, 1048641, 28, 19, 1048706,
29, 2, 23, 16, 11, -24346494, 24, -3964798, 32833, 32898, -6520767,
7602306, -3964863, 9830530, -6389630, 6881345, 6750273, 6717505,
2588737, 6619201, 6651969, 6783041, -3178366, 6914113, 6848577,
-5341054, 6979649, -4259710, 7012417, 7143489, 7110721, 7176257,
5, -1834878, 65633, 32931, 65698, 2588802, -3178431, -1834943,
-4259775, 353730625, -5341119, 353632321, -354385790, -6389695,
2261057, 2326593, -353337214, -353238910, -353304446, 6881410,
6750338, 6717570, 6619266, 6652034, 6783106, -1385430910, 6848642,
6914178, -352026494, -352223102, 6979714, 7012482, -351502206,
7143554, 2261122, 7110786, 2326658, 7176322, 4, 6, -2752378, 1245249,
1212481, 2097217, 2064449, 1245314, 1212546, 1015938, 2097282,
2064514, 262209, 2031746, 1867906, 1, 1540226, 1769602, 262274,
2818178, 2621570, -229246, -1966015, 3145858, -229311, 2621505,
7, 491585, 491650, 1572929, 1572994, 8, 238026817, 10, -1157758846,
-124977022, 1933442, -249528255, -262014, -262079, -2424702, -2817918,
-3276670, -4194174, -3669886, -4128638, -262077, -294782, -2424767,
-294845, 236093570, -2817983, -3276735, -3669951, -4194239, -4128703,
13, 14, -246316991, -274694079, -270729151, 917569, 917634, 524362,
524426, 852061, 852125, -352026559, -124977087, -351502271, 353730690,
353632386, -353238975, -352223167, -353337279, -353304511, -354385855,
238026882, -1157758911, -1385430975, 18, 17
};
/*
* The following constants are used to determine the category of a
* Unicode character.
*/
|