mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 05:40:28 +02:00
+ added unit GraphemeBreakProperty, containing the grapheme break property character data from Unicode 9.0
git-svn-id: trunk@48723 -
This commit is contained in:
parent
1213948393
commit
80bd080293
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -9036,6 +9036,8 @@ packages/rtl-unicode/src/inc/cp949.pas svneol=native#text/pascal
|
||||
packages/rtl-unicode/src/inc/cp950.pas svneol=native#text/pascal
|
||||
packages/rtl-unicode/src/inc/cpbuildu.pp svneol=native#text/plain
|
||||
packages/rtl-unicode/src/inc/freebidi.pp svneol=native#text/plain
|
||||
packages/rtl-unicode/src/inc/graphemebreakproperty.pp svneol=native#text/plain
|
||||
packages/rtl-unicode/src/inc/graphemebreakproperty_code.inc svneol=native#text/plain
|
||||
packages/rtl-unicode/src/inc/ucadata.inc svneol=native#text/pascal
|
||||
packages/rtl-unicode/src/inc/ucadata_be.inc svneol=native#text/pascal
|
||||
packages/rtl-unicode/src/inc/ucadata_le.inc svneol=native#text/pascal
|
||||
|
@ -16,11 +16,12 @@ Const
|
||||
CPUnits = [aix,amiga,aros,android,beos,darwin,iphonesim,ios,emx,gba,nds,freebsd,go32v2,haiku,linux,morphos,netbsd,netware,netwlibc,openbsd,os2,solaris,watcom,wii,win32,win64,wince,dragonfly,freertos];
|
||||
utf8bidiOSes = [netware,netwlibc];
|
||||
freebidiOSes = [netware,netwlibc];
|
||||
GraphemeBreakPropertyOSes = AllOSes;
|
||||
|
||||
// Character not movable because fpwidestring depends on it.
|
||||
// CharacterOSes = [android,darwin,freebsd,linux,netbsd,openbsd,solaris,win32,win64,dragonfly];
|
||||
|
||||
UnicodeAllOSes = CollationOSes + utf8bidiOSes + freebidiOSes + CPUnits;
|
||||
UnicodeAllOSes = CollationOSes + utf8bidiOSes + freebidiOSes + CPUnits + GraphemeBreakPropertyOSes;
|
||||
|
||||
// Amiga has a crt in its RTL dir, but it is commented in the makefile
|
||||
|
||||
@ -138,6 +139,12 @@ begin
|
||||
T:=P.Targets.AddImplicitUnit('cp950.pas',CPUnits);
|
||||
|
||||
// T:=P.Targets.AddUnit('character.pp',characterOSes);
|
||||
|
||||
T:=P.Targets.AddUnit('graphemebreakproperty.pp',GraphemeBreakPropertyOSes);
|
||||
with T.Dependencies do
|
||||
begin
|
||||
AddInclude('graphemebreakproperty_code.inc');
|
||||
end;
|
||||
end
|
||||
end;
|
||||
|
||||
|
37
packages/rtl-unicode/src/inc/graphemebreakproperty.pp
Normal file
37
packages/rtl-unicode/src/inc/graphemebreakproperty.pp
Normal file
@ -0,0 +1,37 @@
|
||||
unit graphemebreakproperty;
|
||||
|
||||
{$MODE objfpc}
|
||||
|
||||
interface
|
||||
|
||||
type
|
||||
TGraphemeBreakProperty = (
|
||||
gbpOther,
|
||||
gbpPrepend,
|
||||
gbpCR,
|
||||
gbpLF,
|
||||
gbpControl,
|
||||
gbpExtend,
|
||||
gpbRegional_Indicator,
|
||||
gbpSpacingMark,
|
||||
gbpL,
|
||||
gbpV,
|
||||
gbpT,
|
||||
gbpLV,
|
||||
gbpLVT,
|
||||
gbpE_Base,
|
||||
gbpE_Modifier,
|
||||
gbpZWJ,
|
||||
gbpGlue_After_Zwj,
|
||||
gbpE_Base_GAZ);
|
||||
|
||||
function GetGraphemeBreakProperty(Ch: UCS4Char): TGraphemeBreakProperty;
|
||||
|
||||
implementation
|
||||
|
||||
function GetGraphemeBreakProperty(Ch: UCS4Char): TGraphemeBreakProperty;
|
||||
begin
|
||||
{$I graphemebreakproperty_code.inc}
|
||||
end;
|
||||
|
||||
end.
|
511
packages/rtl-unicode/src/inc/graphemebreakproperty_code.inc
Normal file
511
packages/rtl-unicode/src/inc/graphemebreakproperty_code.inc
Normal file
@ -0,0 +1,511 @@
|
||||
{ do not edit, this file is autogenerated by the gbpparser tool }
|
||||
if Ch=13then result:=gbpCR else
|
||||
if Ch=10then result:=gbpLF else
|
||||
if Ch=8205then result:=gbpZWJ else
|
||||
if(Ch>=127462)and(Ch<=127487)then result:=gpbRegional_Indicator else
|
||||
if(Ch>=127995)and(Ch<=127999)then result:=gbpE_Modifier else
|
||||
if(Ch>=128102)and(Ch<=128105)then result:=gbpE_Base_GAZ else
|
||||
if(Ch>=44032)and(Ch<=55203)then begin if((Ch-44032)mod 28)=0then result:=gbpLV else result:=gbpLVT end else
|
||||
if((Ch>=4352)and(Ch<=4447))or
|
||||
((Ch>=43360)and(Ch<=43388))then result:=gbpL else
|
||||
if((Ch>=4448)and(Ch<=4519))or
|
||||
((Ch>=55216)and(Ch<=55238))then result:=gbpV else
|
||||
if((Ch>=4520)and(Ch<=4607))or
|
||||
((Ch>=55243)and(Ch<=55291))then result:=gbpT else
|
||||
if(Ch=10084)or
|
||||
(Ch=128139)or
|
||||
(Ch=128488)then result:=gbpGlue_After_Zwj else
|
||||
if((Ch>=1536)and(Ch<=1541))or
|
||||
(Ch=1757)or
|
||||
(Ch=1807)or
|
||||
(Ch=2274)or
|
||||
(Ch=3406)or
|
||||
(Ch=69821)or
|
||||
((Ch>=70082)and(Ch<=70083))then result:=gbpPrepend else
|
||||
if((Ch>=0)and(Ch<=31))or
|
||||
((Ch>=127)and(Ch<=159))or
|
||||
(Ch=173)or
|
||||
(Ch=1564)or
|
||||
(Ch=6158)or
|
||||
(Ch=8203)or
|
||||
((Ch>=8206)and(Ch<=8207))or
|
||||
((Ch>=8232)and(Ch<=8238))or
|
||||
((Ch>=8288)and(Ch<=8303))or
|
||||
((Ch>=55296)and(Ch<=57343))or
|
||||
(Ch=65279)or
|
||||
((Ch>=65520)and(Ch<=65531))or
|
||||
((Ch>=113824)and(Ch<=113827))or
|
||||
((Ch>=119155)and(Ch<=119162))or
|
||||
((Ch>=917504)and(Ch<=917535))or
|
||||
((Ch>=917632)and(Ch<=917759))or
|
||||
((Ch>=918000)and(Ch<=921599))then result:=gbpControl else
|
||||
if(Ch=9757)or
|
||||
(Ch=9977)or
|
||||
((Ch>=9994)and(Ch<=9997))or
|
||||
(Ch=127877)or
|
||||
((Ch>=127939)and(Ch<=127940))or
|
||||
((Ch>=127946)and(Ch<=127947))or
|
||||
((Ch>=128066)and(Ch<=128067))or
|
||||
((Ch>=128070)and(Ch<=128080))or
|
||||
(Ch=128110)or
|
||||
((Ch>=128112)and(Ch<=128120))or
|
||||
(Ch=128124)or
|
||||
((Ch>=128129)and(Ch<=128131))or
|
||||
((Ch>=128133)and(Ch<=128135))or
|
||||
(Ch=128170)or
|
||||
(Ch=128373)or
|
||||
(Ch=128378)or
|
||||
(Ch=128400)or
|
||||
((Ch>=128405)and(Ch<=128406))or
|
||||
((Ch>=128581)and(Ch<=128583))or
|
||||
((Ch>=128587)and(Ch<=128591))or
|
||||
(Ch=128675)or
|
||||
((Ch>=128692)and(Ch<=128694))or
|
||||
(Ch=128704)or
|
||||
((Ch>=129304)and(Ch<=129310))or
|
||||
(Ch=129318)or
|
||||
(Ch=129328)or
|
||||
((Ch>=129331)and(Ch<=129337))or
|
||||
((Ch>=129340)and(Ch<=129342))then result:=gbpE_Base else
|
||||
case Ch of
|
||||
768..879,
|
||||
1155..1161,
|
||||
1425..1469,
|
||||
1471,
|
||||
1473..1474,
|
||||
1476..1477,
|
||||
1479,
|
||||
1552..1562,
|
||||
1611..1631,
|
||||
1648,
|
||||
1750..1756,
|
||||
1759..1764,
|
||||
1767..1768,
|
||||
1770..1773,
|
||||
1809,
|
||||
1840..1866,
|
||||
1958..1968,
|
||||
2027..2035,
|
||||
2070..2073,
|
||||
2075..2083,
|
||||
2085..2087,
|
||||
2089..2093,
|
||||
2137..2139,
|
||||
2260..2306,
|
||||
2362,
|
||||
2364,
|
||||
2369..2376,
|
||||
2381,
|
||||
2385..2391,
|
||||
2402..2403,
|
||||
2433,
|
||||
2492,
|
||||
2494,
|
||||
2497..2500,
|
||||
2509,
|
||||
2519,
|
||||
2530..2531,
|
||||
2561..2562,
|
||||
2620,
|
||||
2625..2626,
|
||||
2631..2632,
|
||||
2635..2637,
|
||||
2641,
|
||||
2672..2673,
|
||||
2677,
|
||||
2689..2690,
|
||||
2748,
|
||||
2753..2757,
|
||||
2759..2760,
|
||||
2765,
|
||||
2786..2787,
|
||||
2817,
|
||||
2876,
|
||||
2878..2879,
|
||||
2881..2884,
|
||||
2893,
|
||||
2902..2903,
|
||||
2914..2915,
|
||||
2946,
|
||||
3006,
|
||||
3008,
|
||||
3021,
|
||||
3031,
|
||||
3072,
|
||||
3134..3136,
|
||||
3142..3144,
|
||||
3146..3149,
|
||||
3157..3158,
|
||||
3170..3171,
|
||||
3201,
|
||||
3260,
|
||||
3263,
|
||||
3266,
|
||||
3270,
|
||||
3276..3277,
|
||||
3285..3286,
|
||||
3298..3299,
|
||||
3329,
|
||||
3390,
|
||||
3393..3396,
|
||||
3405,
|
||||
3415,
|
||||
3426..3427,
|
||||
3530,
|
||||
3535,
|
||||
3538..3540,
|
||||
3542,
|
||||
3551,
|
||||
3633,
|
||||
3636..3642,
|
||||
3655..3662,
|
||||
3761,
|
||||
3764..3769,
|
||||
3771..3772,
|
||||
3784..3789,
|
||||
3864..3865,
|
||||
3893,
|
||||
3895,
|
||||
3897,
|
||||
3953..3966,
|
||||
3968..3972,
|
||||
3974..3975,
|
||||
3981..3991,
|
||||
3993..4028,
|
||||
4038,
|
||||
4141..4144,
|
||||
4146..4151,
|
||||
4153..4154,
|
||||
4157..4158,
|
||||
4184..4185,
|
||||
4190..4192,
|
||||
4209..4212,
|
||||
4226,
|
||||
4229..4230,
|
||||
4237,
|
||||
4253,
|
||||
4957..4959,
|
||||
5906..5908,
|
||||
5938..5940,
|
||||
5970..5971,
|
||||
6002..6003,
|
||||
6068..6069,
|
||||
6071..6077,
|
||||
6086,
|
||||
6089..6099,
|
||||
6109,
|
||||
6155..6157,
|
||||
6277..6278,
|
||||
6313,
|
||||
6432..6434,
|
||||
6439..6440,
|
||||
6450,
|
||||
6457..6459,
|
||||
6679..6680,
|
||||
6683,
|
||||
6742,
|
||||
6744..6750,
|
||||
6752,
|
||||
6754,
|
||||
6757..6764,
|
||||
6771..6780,
|
||||
6783,
|
||||
6832..6846,
|
||||
6912..6915,
|
||||
6964,
|
||||
6966..6970,
|
||||
6972,
|
||||
6978,
|
||||
7019..7027,
|
||||
7040..7041,
|
||||
7074..7077,
|
||||
7080..7081,
|
||||
7083..7085,
|
||||
7142,
|
||||
7144..7145,
|
||||
7149,
|
||||
7151..7153,
|
||||
7212..7219,
|
||||
7222..7223,
|
||||
7376..7378,
|
||||
7380..7392,
|
||||
7394..7400,
|
||||
7405,
|
||||
7412,
|
||||
7416..7417,
|
||||
7616..7669,
|
||||
7675..7679,
|
||||
8204,
|
||||
8400..8432,
|
||||
11503..11505,
|
||||
11647,
|
||||
11744..11775,
|
||||
12330..12335,
|
||||
12441..12442,
|
||||
42607..42610,
|
||||
42612..42621,
|
||||
42654..42655,
|
||||
42736..42737,
|
||||
43010,
|
||||
43014,
|
||||
43019,
|
||||
43045..43046,
|
||||
43204..43205,
|
||||
43232..43249,
|
||||
43302..43309,
|
||||
43335..43345,
|
||||
43392..43394,
|
||||
43443,
|
||||
43446..43449,
|
||||
43452,
|
||||
43493,
|
||||
43561..43566,
|
||||
43569..43570,
|
||||
43573..43574,
|
||||
43587,
|
||||
43596,
|
||||
43644,
|
||||
43696,
|
||||
43698..43700,
|
||||
43703..43704,
|
||||
43710..43711,
|
||||
43713,
|
||||
43756..43757,
|
||||
43766,
|
||||
44005,
|
||||
44008,
|
||||
44013,
|
||||
64286,
|
||||
65024..65039,
|
||||
65056..65071,
|
||||
65438..65439,
|
||||
66045,
|
||||
66272,
|
||||
66422..66426,
|
||||
68097..68099,
|
||||
68101..68102,
|
||||
68108..68111,
|
||||
68152..68154,
|
||||
68159,
|
||||
68325..68326,
|
||||
69633,
|
||||
69688..69702,
|
||||
69759..69761,
|
||||
69811..69814,
|
||||
69817..69818,
|
||||
69888..69890,
|
||||
69927..69931,
|
||||
69933..69940,
|
||||
70003,
|
||||
70016..70017,
|
||||
70070..70078,
|
||||
70090..70092,
|
||||
70191..70193,
|
||||
70196,
|
||||
70198..70199,
|
||||
70206,
|
||||
70367,
|
||||
70371..70378,
|
||||
70400..70401,
|
||||
70460,
|
||||
70462,
|
||||
70464,
|
||||
70487,
|
||||
70502..70508,
|
||||
70512..70516,
|
||||
70712..70719,
|
||||
70722..70724,
|
||||
70726,
|
||||
70832,
|
||||
70835..70840,
|
||||
70842,
|
||||
70845,
|
||||
70847..70848,
|
||||
70850..70851,
|
||||
71087,
|
||||
71090..71093,
|
||||
71100..71101,
|
||||
71103..71104,
|
||||
71132..71133,
|
||||
71219..71226,
|
||||
71229,
|
||||
71231..71232,
|
||||
71339,
|
||||
71341,
|
||||
71344..71349,
|
||||
71351,
|
||||
71453..71455,
|
||||
71458..71461,
|
||||
71463..71467,
|
||||
72752..72758,
|
||||
72760..72765,
|
||||
72767,
|
||||
72850..72871,
|
||||
72874..72880,
|
||||
72882..72883,
|
||||
72885..72886,
|
||||
92912..92916,
|
||||
92976..92982,
|
||||
94095..94098,
|
||||
113821..113822,
|
||||
119141,
|
||||
119143..119145,
|
||||
119150..119170,
|
||||
119173..119179,
|
||||
119210..119213,
|
||||
119362..119364,
|
||||
121344..121398,
|
||||
121403..121452,
|
||||
121461,
|
||||
121476,
|
||||
121499..121503,
|
||||
121505..121519,
|
||||
122880..122886,
|
||||
122888..122904,
|
||||
122907..122913,
|
||||
122915..122916,
|
||||
122918..122922,
|
||||
125136..125142,
|
||||
125252..125258,
|
||||
917536..917999:result:=gbpExtend;
|
||||
2307,
|
||||
2363,
|
||||
2366..2368,
|
||||
2377..2380,
|
||||
2382..2383,
|
||||
2434..2435,
|
||||
2495..2496,
|
||||
2503..2504,
|
||||
2507..2508,
|
||||
2563,
|
||||
2622..2624,
|
||||
2691,
|
||||
2750..2752,
|
||||
2761,
|
||||
2763..2764,
|
||||
2818..2819,
|
||||
2880,
|
||||
2887..2888,
|
||||
2891..2892,
|
||||
3007,
|
||||
3009..3010,
|
||||
3014..3016,
|
||||
3018..3020,
|
||||
3073..3075,
|
||||
3137..3140,
|
||||
3202..3203,
|
||||
3262,
|
||||
3264..3265,
|
||||
3267..3268,
|
||||
3271..3272,
|
||||
3274..3275,
|
||||
3330..3331,
|
||||
3391..3392,
|
||||
3398..3400,
|
||||
3402..3404,
|
||||
3458..3459,
|
||||
3536..3537,
|
||||
3544..3550,
|
||||
3570..3571,
|
||||
3635,
|
||||
3763,
|
||||
3902..3903,
|
||||
3967,
|
||||
4145,
|
||||
4155..4156,
|
||||
4182..4183,
|
||||
4228,
|
||||
6070,
|
||||
6078..6085,
|
||||
6087..6088,
|
||||
6435..6438,
|
||||
6441..6443,
|
||||
6448..6449,
|
||||
6451..6456,
|
||||
6681..6682,
|
||||
6741,
|
||||
6743,
|
||||
6765..6770,
|
||||
6916,
|
||||
6965,
|
||||
6971,
|
||||
6973..6977,
|
||||
6979..6980,
|
||||
7042,
|
||||
7073,
|
||||
7078..7079,
|
||||
7082,
|
||||
7143,
|
||||
7146..7148,
|
||||
7150,
|
||||
7154..7155,
|
||||
7204..7211,
|
||||
7220..7221,
|
||||
7393,
|
||||
7410..7411,
|
||||
43043..43044,
|
||||
43047,
|
||||
43136..43137,
|
||||
43188..43203,
|
||||
43346..43347,
|
||||
43395,
|
||||
43444..43445,
|
||||
43450..43451,
|
||||
43453..43456,
|
||||
43567..43568,
|
||||
43571..43572,
|
||||
43597,
|
||||
43755,
|
||||
43758..43759,
|
||||
43765,
|
||||
44003..44004,
|
||||
44006..44007,
|
||||
44009..44010,
|
||||
44012,
|
||||
69632,
|
||||
69634,
|
||||
69762,
|
||||
69808..69810,
|
||||
69815..69816,
|
||||
69932,
|
||||
70018,
|
||||
70067..70069,
|
||||
70079..70080,
|
||||
70188..70190,
|
||||
70194..70195,
|
||||
70197,
|
||||
70368..70370,
|
||||
70402..70403,
|
||||
70463,
|
||||
70465..70468,
|
||||
70471..70472,
|
||||
70475..70477,
|
||||
70498..70499,
|
||||
70709..70711,
|
||||
70720..70721,
|
||||
70725,
|
||||
70833..70834,
|
||||
70841,
|
||||
70843..70844,
|
||||
70846,
|
||||
70849,
|
||||
71088..71089,
|
||||
71096..71099,
|
||||
71102,
|
||||
71216..71218,
|
||||
71227..71228,
|
||||
71230,
|
||||
71340,
|
||||
71342..71343,
|
||||
71350,
|
||||
71456..71457,
|
||||
71462,
|
||||
72751,
|
||||
72766,
|
||||
72873,
|
||||
72881,
|
||||
72884,
|
||||
94033..94078,
|
||||
119142,
|
||||
119149:result:=gbpSpacingMark;
|
||||
else result:=gbpOther end
|
Loading…
Reference in New Issue
Block a user