mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
parent
25b6e68432
commit
f4a1d9c821
4
NEWS
4
NEWS
@ -16,6 +16,10 @@ PHP NEWS
|
||||
(Come)
|
||||
|
||||
- Mbstring:
|
||||
. Fixed bug #65544 (mb title case conversion-first word in quotation isn't
|
||||
capitalized). (Nikita)
|
||||
. Fixed bug #71298 (MB_CASE_TITLE misbehaves with curled apostrophe/quote.
|
||||
(Nikita)
|
||||
. Fixed bug #73528 (Crash in zif_mb_send_mail). (Nikita)
|
||||
. Fixed bug #74929 (mbstring functions version 7.1.1 are slow compared to 5.3
|
||||
on Windows). (Nikita)
|
||||
|
@ -343,32 +343,24 @@ static int convert_case_filter(int c, void *void_data)
|
||||
case PHP_UNICODE_CASE_TITLE_SIMPLE:
|
||||
case PHP_UNICODE_CASE_TITLE:
|
||||
{
|
||||
int res = php_unicode_is_prop(c,
|
||||
UC_MN, UC_ME, UC_CF, UC_LM, UC_SK, UC_LU, UC_LL, UC_LT, UC_PO, UC_OS, -1);
|
||||
out[0] = c;
|
||||
len = 1;
|
||||
if (data->title_mode) {
|
||||
if (res) {
|
||||
if (data->case_mode == PHP_UNICODE_CASE_TITLE_SIMPLE) {
|
||||
out[0] = php_unicode_tolower_simple(c, data->no_encoding);
|
||||
len = 1;
|
||||
} else {
|
||||
len = php_unicode_tolower_full(c, data->no_encoding, out);
|
||||
}
|
||||
if (data->case_mode == PHP_UNICODE_CASE_TITLE_SIMPLE) {
|
||||
out[0] = php_unicode_tolower_simple(c, data->no_encoding);
|
||||
len = 1;
|
||||
} else {
|
||||
data->title_mode = 0;
|
||||
len = php_unicode_tolower_full(c, data->no_encoding, out);
|
||||
}
|
||||
} else {
|
||||
if (res) {
|
||||
data->title_mode = 1;
|
||||
if (data->case_mode == PHP_UNICODE_CASE_TITLE_SIMPLE) {
|
||||
out[0] = php_unicode_totitle_simple(c, data->no_encoding);
|
||||
len = 1;
|
||||
} else {
|
||||
len = php_unicode_totitle_full(c, data->no_encoding, out);
|
||||
}
|
||||
if (data->case_mode == PHP_UNICODE_CASE_TITLE_SIMPLE) {
|
||||
out[0] = php_unicode_totitle_simple(c, data->no_encoding);
|
||||
len = 1;
|
||||
} else {
|
||||
len = php_unicode_totitle_full(c, data->no_encoding, out);
|
||||
}
|
||||
}
|
||||
if (!php_unicode_is_case_ignorable(c)) {
|
||||
data->title_mode = php_unicode_is_cased(c);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -78,6 +78,11 @@
|
||||
#define UC_PF 40 /* Punctuation, Final */
|
||||
#define UC_AL 41 /* Arabic Letter */
|
||||
|
||||
/* Derived properties from DerivedCoreProperties.txt */
|
||||
#define UC_CASED 42
|
||||
#define UC_CASE_IGNORABLE 43
|
||||
|
||||
|
||||
MBSTRING_API int php_unicode_is_prop(unsigned long code, ...);
|
||||
MBSTRING_API int php_unicode_is_prop1(unsigned long code, int prop);
|
||||
|
||||
@ -180,6 +185,13 @@ static inline int php_unicode_is_upper(unsigned long code) {
|
||||
((cc) >= 0xf900 && (cc) <= 0xfaff))
|
||||
#define php_unicode_is_hangul(cc) ((cc) >= 0xac00 && (cc) <= 0xd7ff)
|
||||
|
||||
/*
|
||||
* Derived core properties.
|
||||
*/
|
||||
|
||||
#define php_unicode_is_cased(cc) php_unicode_is_prop1(cc, UC_CASED)
|
||||
#define php_unicode_is_case_ignorable(cc) php_unicode_is_prop1(cc, UC_CASE_IGNORABLE)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
8
ext/mbstring/tests/bug65544.phpt
Normal file
8
ext/mbstring/tests/bug65544.phpt
Normal file
@ -0,0 +1,8 @@
|
||||
--TEST--
|
||||
Bug #65544: mb title case conversion-first word in quotation isn't capitalized
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(mb_convert_case("\"or else it doesn't, you know. the name of the song is called 'haddocks' eyes.'\"", MB_CASE_TITLE));
|
||||
?>
|
||||
--EXPECT--
|
||||
string(80) ""Or Else It Doesn't, You Know. The Name Of The Song Is Called 'Haddocks' Eyes.'""
|
8
ext/mbstring/tests/bug71298.phpt
Normal file
8
ext/mbstring/tests/bug71298.phpt
Normal file
@ -0,0 +1,8 @@
|
||||
--TEST--
|
||||
Bug #71298: MB_CASE_TITLE misbehaves with curled apostrophe/quote (HTML ’)
|
||||
--FILE--
|
||||
<?php
|
||||
echo mb_convert_case("People's issues versus people’s issues", MB_CASE_TITLE);
|
||||
?>
|
||||
--EXPECT--
|
||||
People's Issues Versus People’s Issues
|
@ -37,7 +37,8 @@
|
||||
|
||||
if ($argc < 2) {
|
||||
echo "Usage: php ucgendata.php ./datadir\n";
|
||||
echo "./datadir must contain UnicodeData.txt and CaseFolding.txt\n";
|
||||
echo "./datadir must contain:\n";
|
||||
echo "UnicodeData.txt, CaseFolding.txt, SpecialCasing.txt and DerivedCoreProperties.txt\n";
|
||||
return;
|
||||
}
|
||||
|
||||
@ -45,8 +46,9 @@ $dir = $argv[1];
|
||||
$unicodeDataFile = $dir . '/UnicodeData.txt';
|
||||
$caseFoldingFile = $dir . '/CaseFolding.txt';
|
||||
$specialCasingFile = $dir . '/SpecialCasing.txt';
|
||||
$derivedCorePropertiesFile = $dir . '/DerivedCoreProperties.txt';
|
||||
|
||||
$files = [$unicodeDataFile, $caseFoldingFile, $specialCasingFile];
|
||||
$files = [$unicodeDataFile, $caseFoldingFile, $specialCasingFile, $derivedCorePropertiesFile];
|
||||
foreach ($files as $file) {
|
||||
if (!file_exists($file)) {
|
||||
echo "File $file does not exist.\n";
|
||||
@ -60,6 +62,7 @@ $data = new UnicodeData;
|
||||
parseUnicodeData($data, file_get_contents($unicodeDataFile));
|
||||
parseCaseFolding($data, file_get_contents($caseFoldingFile));
|
||||
parseSpecialCasing($data, file_get_contents($specialCasingFile));
|
||||
parseDerivedCoreProperties($data, file_get_contents($derivedCorePropertiesFile));
|
||||
file_put_contents($outputFile, generateData($data));
|
||||
|
||||
class Range {
|
||||
@ -90,7 +93,8 @@ class UnicodeData {
|
||||
"Lo", "Pc", "Pd", "Ps", "Pe", "Po",
|
||||
"Sm", "Sc", "Sk", "So", "L", "R",
|
||||
"EN", "ES", "ET", "AN", "CS", "B",
|
||||
"S", "WS", "ON", "Pi", "Pf", "AL"
|
||||
"S", "WS", "ON", "Pi", "Pf", "AL",
|
||||
"Cased", "Case_Ignorable"
|
||||
]);
|
||||
$this->numProps = count($this->propIndexes);
|
||||
|
||||
@ -339,6 +343,28 @@ function parseSpecialCasing(UnicodeData $data, string $input) : void {
|
||||
}
|
||||
}
|
||||
|
||||
function parseDerivedCoreProperties(UnicodeData $data, string $input) : void {
|
||||
foreach (parseDataFile($input) as $fields) {
|
||||
if (count($fields) != 2) {
|
||||
throw new Exception("Line does not contain 2 fields");
|
||||
}
|
||||
|
||||
$property = $fields[1];
|
||||
if ($property != 'Cased' && $property != 'Case_Ignorable') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$range = explode('..', $fields[0]);
|
||||
if (count($range) == 2) {
|
||||
$data->addPropRange(intval($range[0], 16), intval($range[1], 16), $property);
|
||||
} else if (count($range) == 1) {
|
||||
$data->addProp(intval($range[0], 16), $property);
|
||||
} else {
|
||||
throw new Exception("Invalid range");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function formatArray(array $values, int $width, string $format) : string {
|
||||
$result = '';
|
||||
$i = 0;
|
||||
|
@ -10,7 +10,7 @@
|
||||
* the project's page doesn't seem to be live anymore, so you can use
|
||||
* OpenLDAPs modified copy (look in libraries/liblunicode/ucdata) */
|
||||
|
||||
static const unsigned short _ucprop_size = 42;
|
||||
static const unsigned short _ucprop_size = 44;
|
||||
|
||||
static const unsigned short _ucprop_offsets[] = {
|
||||
0x0000, 0x025a, 0x039a, 0x03a4, 0x0412, 0x042a, 0x04a2, 0x04b0,
|
||||
@ -18,7 +18,7 @@ static const unsigned short _ucprop_offsets[] = {
|
||||
0x0ebc, 0x0ed0, 0x0f42, 0x12d8, 0x12e4, 0x1306, 0x139c, 0x142c,
|
||||
0x157e, 0x15fe, 0x1620, 0x165a, 0x17b4, 0x1cea, 0x1d6a, 0x1d82,
|
||||
0x1d94, 0x1dc0, 0x1dcc, 0x1de6, 0x1df0, 0x1df6, 0x1e04, 0x21aa,
|
||||
0x21c0, 0x21d4, 0x2246, 0x0000
|
||||
0x21c0, 0x21d4, 0x2246, 0x2354, 0x264e, 0x0000, 0x0000, 0x0000
|
||||
};
|
||||
|
||||
static const unsigned int _ucprop_ranges[] = {
|
||||
@ -2215,7 +2215,265 @@ static const unsigned int _ucprop_ranges[] = {
|
||||
0x0001ee79, 0x0001ee7c, 0x0001ee7e, 0x0001ee7e,
|
||||
0x0001ee80, 0x0001ee89, 0x0001ee8b, 0x0001ee9b,
|
||||
0x0001eea1, 0x0001eea3, 0x0001eea5, 0x0001eea9,
|
||||
0x0001eeab, 0x0001eebb
|
||||
0x0001eeab, 0x0001eebb, 0x00000041, 0x0000005a,
|
||||
0x00000061, 0x0000007a, 0x000000aa, 0x000000aa,
|
||||
0x000000b5, 0x000000b5, 0x000000ba, 0x000000ba,
|
||||
0x000000c0, 0x000000d6, 0x000000d8, 0x000000f6,
|
||||
0x000000f8, 0x000001ba, 0x000001bc, 0x000001bf,
|
||||
0x000001c4, 0x00000293, 0x00000295, 0x000002b8,
|
||||
0x000002c0, 0x000002c1, 0x000002e0, 0x000002e4,
|
||||
0x00000345, 0x00000345, 0x00000370, 0x00000373,
|
||||
0x00000376, 0x00000377, 0x0000037a, 0x0000037d,
|
||||
0x0000037f, 0x0000037f, 0x00000386, 0x00000386,
|
||||
0x00000388, 0x0000038a, 0x0000038c, 0x0000038c,
|
||||
0x0000038e, 0x000003a1, 0x000003a3, 0x000003f5,
|
||||
0x000003f7, 0x00000481, 0x0000048a, 0x0000052f,
|
||||
0x00000531, 0x00000556, 0x00000561, 0x00000587,
|
||||
0x000010a0, 0x000010c5, 0x000010c7, 0x000010c7,
|
||||
0x000010cd, 0x000010cd, 0x000013a0, 0x000013f5,
|
||||
0x000013f8, 0x000013fd, 0x00001c80, 0x00001c88,
|
||||
0x00001d00, 0x00001dbf, 0x00001e00, 0x00001f15,
|
||||
0x00001f18, 0x00001f1d, 0x00001f20, 0x00001f45,
|
||||
0x00001f48, 0x00001f4d, 0x00001f50, 0x00001f57,
|
||||
0x00001f59, 0x00001f59, 0x00001f5b, 0x00001f5b,
|
||||
0x00001f5d, 0x00001f5d, 0x00001f5f, 0x00001f7d,
|
||||
0x00001f80, 0x00001fb4, 0x00001fb6, 0x00001fbc,
|
||||
0x00001fbe, 0x00001fbe, 0x00001fc2, 0x00001fc4,
|
||||
0x00001fc6, 0x00001fcc, 0x00001fd0, 0x00001fd3,
|
||||
0x00001fd6, 0x00001fdb, 0x00001fe0, 0x00001fec,
|
||||
0x00001ff2, 0x00001ff4, 0x00001ff6, 0x00001ffc,
|
||||
0x00002071, 0x00002071, 0x0000207f, 0x0000207f,
|
||||
0x00002090, 0x0000209c, 0x00002102, 0x00002102,
|
||||
0x00002107, 0x00002107, 0x0000210a, 0x00002113,
|
||||
0x00002115, 0x00002115, 0x00002119, 0x0000211d,
|
||||
0x00002124, 0x00002124, 0x00002126, 0x00002126,
|
||||
0x00002128, 0x00002128, 0x0000212a, 0x0000212d,
|
||||
0x0000212f, 0x00002134, 0x00002139, 0x00002139,
|
||||
0x0000213c, 0x0000213f, 0x00002145, 0x00002149,
|
||||
0x0000214e, 0x0000214e, 0x00002160, 0x0000217f,
|
||||
0x00002183, 0x00002184, 0x000024b6, 0x000024e9,
|
||||
0x00002c00, 0x00002c2e, 0x00002c30, 0x00002c5e,
|
||||
0x00002c60, 0x00002ce4, 0x00002ceb, 0x00002cee,
|
||||
0x00002cf2, 0x00002cf3, 0x00002d00, 0x00002d25,
|
||||
0x00002d27, 0x00002d27, 0x00002d2d, 0x00002d2d,
|
||||
0x0000a640, 0x0000a66d, 0x0000a680, 0x0000a69d,
|
||||
0x0000a722, 0x0000a787, 0x0000a78b, 0x0000a78e,
|
||||
0x0000a790, 0x0000a7ae, 0x0000a7b0, 0x0000a7b7,
|
||||
0x0000a7f8, 0x0000a7fa, 0x0000ab30, 0x0000ab5a,
|
||||
0x0000ab5c, 0x0000ab65, 0x0000ab70, 0x0000abbf,
|
||||
0x0000fb00, 0x0000fb06, 0x0000fb13, 0x0000fb17,
|
||||
0x0000ff21, 0x0000ff3a, 0x0000ff41, 0x0000ff5a,
|
||||
0x00010400, 0x0001044f, 0x000104b0, 0x000104d3,
|
||||
0x000104d8, 0x000104fb, 0x00010c80, 0x00010cb2,
|
||||
0x00010cc0, 0x00010cf2, 0x000118a0, 0x000118df,
|
||||
0x0001d400, 0x0001d454, 0x0001d456, 0x0001d49c,
|
||||
0x0001d49e, 0x0001d49f, 0x0001d4a2, 0x0001d4a2,
|
||||
0x0001d4a5, 0x0001d4a6, 0x0001d4a9, 0x0001d4ac,
|
||||
0x0001d4ae, 0x0001d4b9, 0x0001d4bb, 0x0001d4bb,
|
||||
0x0001d4bd, 0x0001d4c3, 0x0001d4c5, 0x0001d505,
|
||||
0x0001d507, 0x0001d50a, 0x0001d50d, 0x0001d514,
|
||||
0x0001d516, 0x0001d51c, 0x0001d51e, 0x0001d539,
|
||||
0x0001d53b, 0x0001d53e, 0x0001d540, 0x0001d544,
|
||||
0x0001d546, 0x0001d546, 0x0001d54a, 0x0001d550,
|
||||
0x0001d552, 0x0001d6a5, 0x0001d6a8, 0x0001d6c0,
|
||||
0x0001d6c2, 0x0001d6da, 0x0001d6dc, 0x0001d6fa,
|
||||
0x0001d6fc, 0x0001d714, 0x0001d716, 0x0001d734,
|
||||
0x0001d736, 0x0001d74e, 0x0001d750, 0x0001d76e,
|
||||
0x0001d770, 0x0001d788, 0x0001d78a, 0x0001d7a8,
|
||||
0x0001d7aa, 0x0001d7c2, 0x0001d7c4, 0x0001d7cb,
|
||||
0x0001e900, 0x0001e943, 0x0001f130, 0x0001f149,
|
||||
0x0001f150, 0x0001f169, 0x0001f170, 0x0001f189,
|
||||
0x00000027, 0x00000027, 0x0000002e, 0x0000002e,
|
||||
0x0000003a, 0x0000003a, 0x0000005e, 0x0000005e,
|
||||
0x00000060, 0x00000060, 0x000000a8, 0x000000a8,
|
||||
0x000000ad, 0x000000ad, 0x000000af, 0x000000af,
|
||||
0x000000b4, 0x000000b4, 0x000000b7, 0x000000b8,
|
||||
0x000002b0, 0x0000036f, 0x00000374, 0x00000375,
|
||||
0x0000037a, 0x0000037a, 0x00000384, 0x00000385,
|
||||
0x00000387, 0x00000387, 0x00000483, 0x00000489,
|
||||
0x00000559, 0x00000559, 0x00000591, 0x000005bd,
|
||||
0x000005bf, 0x000005bf, 0x000005c1, 0x000005c2,
|
||||
0x000005c4, 0x000005c5, 0x000005c7, 0x000005c7,
|
||||
0x000005f4, 0x000005f4, 0x00000600, 0x00000605,
|
||||
0x00000610, 0x0000061a, 0x0000061c, 0x0000061c,
|
||||
0x00000640, 0x00000640, 0x0000064b, 0x0000065f,
|
||||
0x00000670, 0x00000670, 0x000006d6, 0x000006dd,
|
||||
0x000006df, 0x000006e8, 0x000006ea, 0x000006ed,
|
||||
0x0000070f, 0x0000070f, 0x00000711, 0x00000711,
|
||||
0x00000730, 0x0000074a, 0x000007a6, 0x000007b0,
|
||||
0x000007eb, 0x000007f5, 0x000007fa, 0x000007fa,
|
||||
0x00000816, 0x0000082d, 0x00000859, 0x0000085b,
|
||||
0x000008d4, 0x00000902, 0x0000093a, 0x0000093a,
|
||||
0x0000093c, 0x0000093c, 0x00000941, 0x00000948,
|
||||
0x0000094d, 0x0000094d, 0x00000951, 0x00000957,
|
||||
0x00000962, 0x00000963, 0x00000971, 0x00000971,
|
||||
0x00000981, 0x00000981, 0x000009bc, 0x000009bc,
|
||||
0x000009c1, 0x000009c4, 0x000009cd, 0x000009cd,
|
||||
0x000009e2, 0x000009e3, 0x00000a01, 0x00000a02,
|
||||
0x00000a3c, 0x00000a3c, 0x00000a41, 0x00000a42,
|
||||
0x00000a47, 0x00000a48, 0x00000a4b, 0x00000a4d,
|
||||
0x00000a51, 0x00000a51, 0x00000a70, 0x00000a71,
|
||||
0x00000a75, 0x00000a75, 0x00000a81, 0x00000a82,
|
||||
0x00000abc, 0x00000abc, 0x00000ac1, 0x00000ac5,
|
||||
0x00000ac7, 0x00000ac8, 0x00000acd, 0x00000acd,
|
||||
0x00000ae2, 0x00000ae3, 0x00000afa, 0x00000aff,
|
||||
0x00000b01, 0x00000b01, 0x00000b3c, 0x00000b3c,
|
||||
0x00000b3f, 0x00000b3f, 0x00000b41, 0x00000b44,
|
||||
0x00000b4d, 0x00000b4d, 0x00000b56, 0x00000b56,
|
||||
0x00000b62, 0x00000b63, 0x00000b82, 0x00000b82,
|
||||
0x00000bc0, 0x00000bc0, 0x00000bcd, 0x00000bcd,
|
||||
0x00000c00, 0x00000c00, 0x00000c3e, 0x00000c40,
|
||||
0x00000c46, 0x00000c48, 0x00000c4a, 0x00000c4d,
|
||||
0x00000c55, 0x00000c56, 0x00000c62, 0x00000c63,
|
||||
0x00000c81, 0x00000c81, 0x00000cbc, 0x00000cbc,
|
||||
0x00000cbf, 0x00000cbf, 0x00000cc6, 0x00000cc6,
|
||||
0x00000ccc, 0x00000ccd, 0x00000ce2, 0x00000ce3,
|
||||
0x00000d00, 0x00000d01, 0x00000d3b, 0x00000d3c,
|
||||
0x00000d41, 0x00000d44, 0x00000d4d, 0x00000d4d,
|
||||
0x00000d62, 0x00000d63, 0x00000dca, 0x00000dca,
|
||||
0x00000dd2, 0x00000dd4, 0x00000dd6, 0x00000dd6,
|
||||
0x00000e31, 0x00000e31, 0x00000e34, 0x00000e3a,
|
||||
0x00000e46, 0x00000e4e, 0x00000eb1, 0x00000eb1,
|
||||
0x00000eb4, 0x00000eb9, 0x00000ebb, 0x00000ebc,
|
||||
0x00000ec6, 0x00000ec6, 0x00000ec8, 0x00000ecd,
|
||||
0x00000f18, 0x00000f19, 0x00000f35, 0x00000f35,
|
||||
0x00000f37, 0x00000f37, 0x00000f39, 0x00000f39,
|
||||
0x00000f71, 0x00000f7e, 0x00000f80, 0x00000f84,
|
||||
0x00000f86, 0x00000f87, 0x00000f8d, 0x00000f97,
|
||||
0x00000f99, 0x00000fbc, 0x00000fc6, 0x00000fc6,
|
||||
0x0000102d, 0x00001030, 0x00001032, 0x00001037,
|
||||
0x00001039, 0x0000103a, 0x0000103d, 0x0000103e,
|
||||
0x00001058, 0x00001059, 0x0000105e, 0x00001060,
|
||||
0x00001071, 0x00001074, 0x00001082, 0x00001082,
|
||||
0x00001085, 0x00001086, 0x0000108d, 0x0000108d,
|
||||
0x0000109d, 0x0000109d, 0x000010fc, 0x000010fc,
|
||||
0x0000135d, 0x0000135f, 0x00001712, 0x00001714,
|
||||
0x00001732, 0x00001734, 0x00001752, 0x00001753,
|
||||
0x00001772, 0x00001773, 0x000017b4, 0x000017b5,
|
||||
0x000017b7, 0x000017bd, 0x000017c6, 0x000017c6,
|
||||
0x000017c9, 0x000017d3, 0x000017d7, 0x000017d7,
|
||||
0x000017dd, 0x000017dd, 0x0000180b, 0x0000180e,
|
||||
0x00001843, 0x00001843, 0x00001885, 0x00001886,
|
||||
0x000018a9, 0x000018a9, 0x00001920, 0x00001922,
|
||||
0x00001927, 0x00001928, 0x00001932, 0x00001932,
|
||||
0x00001939, 0x0000193b, 0x00001a17, 0x00001a18,
|
||||
0x00001a1b, 0x00001a1b, 0x00001a56, 0x00001a56,
|
||||
0x00001a58, 0x00001a5e, 0x00001a60, 0x00001a60,
|
||||
0x00001a62, 0x00001a62, 0x00001a65, 0x00001a6c,
|
||||
0x00001a73, 0x00001a7c, 0x00001a7f, 0x00001a7f,
|
||||
0x00001aa7, 0x00001aa7, 0x00001ab0, 0x00001abe,
|
||||
0x00001b00, 0x00001b03, 0x00001b34, 0x00001b34,
|
||||
0x00001b36, 0x00001b3a, 0x00001b3c, 0x00001b3c,
|
||||
0x00001b42, 0x00001b42, 0x00001b6b, 0x00001b73,
|
||||
0x00001b80, 0x00001b81, 0x00001ba2, 0x00001ba5,
|
||||
0x00001ba8, 0x00001ba9, 0x00001bab, 0x00001bad,
|
||||
0x00001be6, 0x00001be6, 0x00001be8, 0x00001be9,
|
||||
0x00001bed, 0x00001bed, 0x00001bef, 0x00001bf1,
|
||||
0x00001c2c, 0x00001c33, 0x00001c36, 0x00001c37,
|
||||
0x00001c78, 0x00001c7d, 0x00001cd0, 0x00001cd2,
|
||||
0x00001cd4, 0x00001ce0, 0x00001ce2, 0x00001ce8,
|
||||
0x00001ced, 0x00001ced, 0x00001cf4, 0x00001cf4,
|
||||
0x00001cf8, 0x00001cf9, 0x00001d2c, 0x00001d6a,
|
||||
0x00001d78, 0x00001d78, 0x00001d9b, 0x00001df9,
|
||||
0x00001dfb, 0x00001dff, 0x00001fbd, 0x00001fbd,
|
||||
0x00001fbf, 0x00001fc1, 0x00001fcd, 0x00001fcf,
|
||||
0x00001fdd, 0x00001fdf, 0x00001fed, 0x00001fef,
|
||||
0x00001ffd, 0x00001ffe, 0x0000200b, 0x0000200f,
|
||||
0x00002018, 0x00002019, 0x00002024, 0x00002024,
|
||||
0x00002027, 0x00002027, 0x0000202a, 0x0000202e,
|
||||
0x00002060, 0x00002064, 0x00002066, 0x0000206f,
|
||||
0x00002071, 0x00002071, 0x0000207f, 0x0000207f,
|
||||
0x00002090, 0x0000209c, 0x000020d0, 0x000020f0,
|
||||
0x00002c7c, 0x00002c7d, 0x00002cef, 0x00002cf1,
|
||||
0x00002d6f, 0x00002d6f, 0x00002d7f, 0x00002d7f,
|
||||
0x00002de0, 0x00002dff, 0x00002e2f, 0x00002e2f,
|
||||
0x00003005, 0x00003005, 0x0000302a, 0x0000302d,
|
||||
0x00003031, 0x00003035, 0x0000303b, 0x0000303b,
|
||||
0x00003099, 0x0000309e, 0x000030fc, 0x000030fe,
|
||||
0x0000a015, 0x0000a015, 0x0000a4f8, 0x0000a4fd,
|
||||
0x0000a60c, 0x0000a60c, 0x0000a66f, 0x0000a672,
|
||||
0x0000a674, 0x0000a67d, 0x0000a67f, 0x0000a67f,
|
||||
0x0000a69c, 0x0000a69f, 0x0000a6f0, 0x0000a6f1,
|
||||
0x0000a700, 0x0000a721, 0x0000a770, 0x0000a770,
|
||||
0x0000a788, 0x0000a78a, 0x0000a7f8, 0x0000a7f9,
|
||||
0x0000a802, 0x0000a802, 0x0000a806, 0x0000a806,
|
||||
0x0000a80b, 0x0000a80b, 0x0000a825, 0x0000a826,
|
||||
0x0000a8c4, 0x0000a8c5, 0x0000a8e0, 0x0000a8f1,
|
||||
0x0000a926, 0x0000a92d, 0x0000a947, 0x0000a951,
|
||||
0x0000a980, 0x0000a982, 0x0000a9b3, 0x0000a9b3,
|
||||
0x0000a9b6, 0x0000a9b9, 0x0000a9bc, 0x0000a9bc,
|
||||
0x0000a9cf, 0x0000a9cf, 0x0000a9e5, 0x0000a9e6,
|
||||
0x0000aa29, 0x0000aa2e, 0x0000aa31, 0x0000aa32,
|
||||
0x0000aa35, 0x0000aa36, 0x0000aa43, 0x0000aa43,
|
||||
0x0000aa4c, 0x0000aa4c, 0x0000aa70, 0x0000aa70,
|
||||
0x0000aa7c, 0x0000aa7c, 0x0000aab0, 0x0000aab0,
|
||||
0x0000aab2, 0x0000aab4, 0x0000aab7, 0x0000aab8,
|
||||
0x0000aabe, 0x0000aabf, 0x0000aac1, 0x0000aac1,
|
||||
0x0000aadd, 0x0000aadd, 0x0000aaec, 0x0000aaed,
|
||||
0x0000aaf3, 0x0000aaf4, 0x0000aaf6, 0x0000aaf6,
|
||||
0x0000ab5b, 0x0000ab5f, 0x0000abe5, 0x0000abe5,
|
||||
0x0000abe8, 0x0000abe8, 0x0000abed, 0x0000abed,
|
||||
0x0000fb1e, 0x0000fb1e, 0x0000fbb2, 0x0000fbc1,
|
||||
0x0000fe00, 0x0000fe0f, 0x0000fe13, 0x0000fe13,
|
||||
0x0000fe20, 0x0000fe2f, 0x0000fe52, 0x0000fe52,
|
||||
0x0000fe55, 0x0000fe55, 0x0000feff, 0x0000feff,
|
||||
0x0000ff07, 0x0000ff07, 0x0000ff0e, 0x0000ff0e,
|
||||
0x0000ff1a, 0x0000ff1a, 0x0000ff3e, 0x0000ff3e,
|
||||
0x0000ff40, 0x0000ff40, 0x0000ff70, 0x0000ff70,
|
||||
0x0000ff9e, 0x0000ff9f, 0x0000ffe3, 0x0000ffe3,
|
||||
0x0000fff9, 0x0000fffb, 0x000101fd, 0x000101fd,
|
||||
0x000102e0, 0x000102e0, 0x00010376, 0x0001037a,
|
||||
0x00010a01, 0x00010a03, 0x00010a05, 0x00010a06,
|
||||
0x00010a0c, 0x00010a0f, 0x00010a38, 0x00010a3a,
|
||||
0x00010a3f, 0x00010a3f, 0x00010ae5, 0x00010ae6,
|
||||
0x00011001, 0x00011001, 0x00011038, 0x00011046,
|
||||
0x0001107f, 0x00011081, 0x000110b3, 0x000110b6,
|
||||
0x000110b9, 0x000110ba, 0x000110bd, 0x000110bd,
|
||||
0x00011100, 0x00011102, 0x00011127, 0x0001112b,
|
||||
0x0001112d, 0x00011134, 0x00011173, 0x00011173,
|
||||
0x00011180, 0x00011181, 0x000111b6, 0x000111be,
|
||||
0x000111ca, 0x000111cc, 0x0001122f, 0x00011231,
|
||||
0x00011234, 0x00011234, 0x00011236, 0x00011237,
|
||||
0x0001123e, 0x0001123e, 0x000112df, 0x000112df,
|
||||
0x000112e3, 0x000112ea, 0x00011300, 0x00011301,
|
||||
0x0001133c, 0x0001133c, 0x00011340, 0x00011340,
|
||||
0x00011366, 0x0001136c, 0x00011370, 0x00011374,
|
||||
0x00011438, 0x0001143f, 0x00011442, 0x00011444,
|
||||
0x00011446, 0x00011446, 0x000114b3, 0x000114b8,
|
||||
0x000114ba, 0x000114ba, 0x000114bf, 0x000114c0,
|
||||
0x000114c2, 0x000114c3, 0x000115b2, 0x000115b5,
|
||||
0x000115bc, 0x000115bd, 0x000115bf, 0x000115c0,
|
||||
0x000115dc, 0x000115dd, 0x00011633, 0x0001163a,
|
||||
0x0001163d, 0x0001163d, 0x0001163f, 0x00011640,
|
||||
0x000116ab, 0x000116ab, 0x000116ad, 0x000116ad,
|
||||
0x000116b0, 0x000116b5, 0x000116b7, 0x000116b7,
|
||||
0x0001171d, 0x0001171f, 0x00011722, 0x00011725,
|
||||
0x00011727, 0x0001172b, 0x00011a01, 0x00011a06,
|
||||
0x00011a09, 0x00011a0a, 0x00011a33, 0x00011a38,
|
||||
0x00011a3b, 0x00011a3e, 0x00011a47, 0x00011a47,
|
||||
0x00011a51, 0x00011a56, 0x00011a59, 0x00011a5b,
|
||||
0x00011a8a, 0x00011a96, 0x00011a98, 0x00011a99,
|
||||
0x00011c30, 0x00011c36, 0x00011c38, 0x00011c3d,
|
||||
0x00011c3f, 0x00011c3f, 0x00011c92, 0x00011ca7,
|
||||
0x00011caa, 0x00011cb0, 0x00011cb2, 0x00011cb3,
|
||||
0x00011cb5, 0x00011cb6, 0x00011d31, 0x00011d36,
|
||||
0x00011d3a, 0x00011d3a, 0x00011d3c, 0x00011d3d,
|
||||
0x00011d3f, 0x00011d45, 0x00011d47, 0x00011d47,
|
||||
0x00016af0, 0x00016af4, 0x00016b30, 0x00016b36,
|
||||
0x00016b40, 0x00016b43, 0x00016f8f, 0x00016f9f,
|
||||
0x00016fe0, 0x00016fe1, 0x0001bc9d, 0x0001bc9e,
|
||||
0x0001bca0, 0x0001bca3, 0x0001d167, 0x0001d169,
|
||||
0x0001d173, 0x0001d182, 0x0001d185, 0x0001d18b,
|
||||
0x0001d1aa, 0x0001d1ad, 0x0001d242, 0x0001d244,
|
||||
0x0001da00, 0x0001da36, 0x0001da3b, 0x0001da6c,
|
||||
0x0001da75, 0x0001da75, 0x0001da84, 0x0001da84,
|
||||
0x0001da9b, 0x0001da9f, 0x0001daa1, 0x0001daaf,
|
||||
0x0001e000, 0x0001e006, 0x0001e008, 0x0001e018,
|
||||
0x0001e01b, 0x0001e021, 0x0001e023, 0x0001e024,
|
||||
0x0001e026, 0x0001e02a, 0x0001e8d0, 0x0001e8d6,
|
||||
0x0001e944, 0x0001e94a, 0x0001f3fb, 0x0001f3ff,
|
||||
0x000e0001, 0x000e0001, 0x000e0020, 0x000e007f,
|
||||
0x000e0100, 0x000e01ef
|
||||
};
|
||||
|
||||
static const unsigned _uccase_upper_g_size = 254;
|
||||
|
Loading…
Reference in New Issue
Block a user