diff options
| author | Sam Varshavchik | 2015-01-20 08:34:36 -0500 |
|---|---|---|
| committer | Sam Varshavchik | 2015-01-20 08:34:36 -0500 |
| commit | da75938c6c857fa8a5290850e288fa64052feacb (patch) | |
| tree | 882258ec52c9bd645d5cd3c13040c02514d9d374 | |
| parent | f9d000cfabe83c219b6a035e0e08fdd2cacebc9e (diff) | |
| download | courier-libs-da75938c6c857fa8a5290850e288fa64052feacb.tar.bz2 | |
unicode: unicode_script() returns an enumerated value instead of a string.
| -rw-r--r-- | unicode/book.xml | 9 | ||||
| -rwxr-xr-x | unicode/mkscripts.pl | 31 | ||||
| -rw-r--r-- | unicode/scriptstab.h | 2477 | ||||
| -rw-r--r-- | unicode/scripttest.c | 2 | ||||
| -rw-r--r-- | unicode/unicode.h | 134 | ||||
| -rw-r--r-- | unicode/unicode_scripts.c | 16 |
6 files changed, 1345 insertions, 1324 deletions
diff --git a/unicode/book.xml b/unicode/book.xml index 2d3450b..6bbf691 100644 --- a/unicode/book.xml +++ b/unicode/book.xml @@ -818,7 +818,7 @@ See COPYING for distribution information. <funcsynopsis> <funcsynopsisinfo>#include <unicode.h></funcsynopsisinfo> <funcprototype> - <funcdef>const char *<function>unicode_script</function></funcdef> + <funcdef>unicode_script_t <function>unicode_script</function></funcdef> <paramdef>unicode_char <parameter>ch</parameter></paramdef> </funcprototype> </funcsynopsis> @@ -828,9 +828,10 @@ See COPYING for distribution information. <para> <function>unicode_script</function>() looks up the <quote>script</quote> property of the specified unicode character, - and returns it. - <quote>Unknown</quote> gets returned for a unicode character - with an unknown script property. + and returns it. The <classname>unicode_script_t</classname> + enumeration encodes possible unicode script values. + <literal>unicode_script_unknown</literal> gets returned for a + unicode character with an unknown script property. </para> </refsect1> diff --git a/unicode/mkscripts.pl b/unicode/mkscripts.pl index c21ed92..d29a04d 100755 --- a/unicode/mkscripts.pl +++ b/unicode/mkscripts.pl @@ -60,17 +60,34 @@ while (defined($_=<F>)) $scriptnames{$s} //= ++$counter; - push @table, [$f, $l, $scriptnames{$s} . "-1"]; + push @table, [$f, $l, "unicode_script_" . lc($s)]; } -print "static const char * const scripts[]={\n"; +open(F, "<unicode.h") or die; -foreach (sort { $scriptnames{$a} <=> $scriptnames{$b}} keys %scriptnames) -{ - print "\t\"$_\",\n"; -} +my @unicode_h=<F>; +close(F); + +my ($f, $l) = grep { $unicode_h[$_] =~ /UNICODE_SCRIPT_T/ } (0..$#unicode_h); + +die unless $f && $l; + +my @repl = map { + "\tunicode_script_" . lc($_) . ",\n"; +} sort { + $scriptnames{$a} <=> $scriptnames{$b}; +} keys %scriptnames; + +unshift @repl, "\tunicode_script_unknown,\n"; + +$repl[$#repl] =~ s/,//; + +splice @unicode_h, $f+1, $l-$f-2, @repl; -print "\t\"Unknown\"};\n"; +open(F, ">unicode.h.tmp") or die; +print F join("", @unicode_h); +close(F) or die; +rename("unicode.h.tmp", "unicode.h") or die; grep { diff --git a/unicode/scriptstab.h b/unicode/scriptstab.h index add7e8e..07a5993 100644 --- a/unicode/scriptstab.h +++ b/unicode/scriptstab.h @@ -1,130 +1,3 @@ -static const char * const scripts[]={ - "Common", - "Latin", - "Greek", - "Cyrillic", - "Armenian", - "Hebrew", - "Arabic", - "Syriac", - "Thaana", - "Devanagari", - "Bengali", - "Gurmukhi", - "Gujarati", - "Oriya", - "Tamil", - "Telugu", - "Kannada", - "Malayalam", - "Sinhala", - "Thai", - "Lao", - "Tibetan", - "Myanmar", - "Georgian", - "Hangul", - "Ethiopic", - "Cherokee", - "Canadian_Aboriginal", - "Ogham", - "Runic", - "Khmer", - "Mongolian", - "Hiragana", - "Katakana", - "Bopomofo", - "Han", - "Yi", - "Old_Italic", - "Gothic", - "Deseret", - "Inherited", - "Tagalog", - "Hanunoo", - "Buhid", - "Tagbanwa", - "Limbu", - "Tai_Le", - "Linear_B", - "Ugaritic", - "Shavian", - "Osmanya", - "Cypriot", - "Braille", - "Buginese", - "Coptic", - "New_Tai_Lue", - "Glagolitic", - "Tifinagh", - "Syloti_Nagri", - "Old_Persian", - "Kharoshthi", - "Balinese", - "Cuneiform", - "Phoenician", - "Phags_Pa", - "Nko", - "Sundanese", - "Lepcha", - "Ol_Chiki", - "Vai", - "Saurashtra", - "Kayah_Li", - "Rejang", - "Lycian", - "Carian", - "Lydian", - "Cham", - "Tai_Tham", - "Tai_Viet", - "Avestan", - "Egyptian_Hieroglyphs", - "Samaritan", - "Lisu", - "Bamum", - "Javanese", - "Meetei_Mayek", - "Imperial_Aramaic", - "Old_South_Arabian", - "Inscriptional_Parthian", - "Inscriptional_Pahlavi", - "Old_Turkic", - "Kaithi", - "Batak", - "Brahmi", - "Mandaic", - "Chakma", - "Meroitic_Cursive", - "Meroitic_Hieroglyphs", - "Miao", - "Sharada", - "Sora_Sompeng", - "Takri", - "Caucasian_Albanian", - "Bassa_Vah", - "Duployan", - "Elbasan", - "Grantha", - "Pahawh_Hmong", - "Khojki", - "Linear_A", - "Mahajani", - "Manichaean", - "Mende_Kikakui", - "Modi", - "Mro", - "Old_North_Arabian", - "Nabataean", - "Palmyrene", - "Pau_Cin_Hau", - "Old_Permic", - "Psalter_Pahlavi", - "Siddham", - "Khudawadi", - "Tirhuta", - "Warang_Citi", - "Unknown"}; static const uint8_t unicode_rangetab[][2]={ {0x0000 & 0xFF, 0x0040 & 0xFF}, {0x0041 & 0xFF, 0x005a & 0xFF}, @@ -1303,1181 +1176,1181 @@ static const uint8_t unicode_rangetab[][2]={ {0xe0100 & 0xFF, 0xe01ef & 0xFF}}; static const uint8_t unicode_classtab[]={ - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 2-1, - 2-1, - 1-1, - 2-1, - 1-1, - 35-1, - 1-1, - 41-1, - 3-1, - 1-1, - 3-1, - 3-1, - 1-1, - 3-1, - 3-1, - 1-1, - 3-1, - 1-1, - 3-1, - 3-1, - 3-1, - 3-1, - 55-1, - 3-1, - 4-1, - 41-1, - 4-1, - 4-1, - 5-1, - 5-1, - 5-1, - 1-1, - 5-1, - 5-1, - 6-1, - 6-1, - 6-1, - 7-1, - 1-1, - 7-1, - 1-1, - 7-1, - 1-1, - 7-1, - 1-1, - 7-1, - 1-1, - 7-1, - 41-1, - 7-1, - 1-1, - 7-1, - 41-1, - 7-1, - 1-1, - 7-1, - 8-1, - 8-1, - 8-1, - 7-1, - 9-1, - 66-1, - 82-1, - 82-1, - 95-1, - 95-1, - 7-1, - 7-1, - 10-1, - 41-1, - 10-1, - 1-1, - 10-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 11-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 12-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 13-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 14-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 15-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 16-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 17-1, - 18-1, - 18-1, - 18-1, - 18-1, - 18-1, - 18-1, - 18-1, - 18-1, - 18-1, - 18-1, - 18-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 19-1, - 20-1, - 1-1, - 20-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 21-1, - 22-1, - 22-1, - 22-1, - 22-1, - 22-1, - 22-1, - 1-1, - 22-1, - 23-1, - 24-1, - 24-1, - 24-1, - 24-1, - 1-1, - 24-1, - 25-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 27-1, - 28-1, - 28-1, - 28-1, - 29-1, - 30-1, - 1-1, - 30-1, - 42-1, - 42-1, - 43-1, - 1-1, - 44-1, - 45-1, - 45-1, - 45-1, - 31-1, - 31-1, - 31-1, - 32-1, - 1-1, - 32-1, - 1-1, - 32-1, - 32-1, - 32-1, - 32-1, - 28-1, - 46-1, - 46-1, - 46-1, - 46-1, - 46-1, - 47-1, - 47-1, - 56-1, - 56-1, - 56-1, - 56-1, - 31-1, - 54-1, - 54-1, - 78-1, - 78-1, - 78-1, - 78-1, - 78-1, - 41-1, - 62-1, - 62-1, - 67-1, - 93-1, - 93-1, - 68-1, - 68-1, - 68-1, - 69-1, - 67-1, - 41-1, - 1-1, - 41-1, - 1-1, - 41-1, - 1-1, - 41-1, - 1-1, - 41-1, - 1-1, - 41-1, - 2-1, - 3-1, - 4-1, - 2-1, - 3-1, - 2-1, - 3-1, - 2-1, - 4-1, - 2-1, - 3-1, - 41-1, - 41-1, - 2-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 3-1, - 1-1, - 41-1, - 1-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 41-1, - 1-1, - 3-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 53-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 57-1, - 57-1, - 2-1, - 55-1, - 55-1, - 24-1, - 24-1, - 24-1, - 58-1, - 58-1, - 58-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 4-1, - 1-1, - 36-1, - 36-1, - 36-1, - 1-1, - 1-1, - 36-1, - 1-1, - 36-1, - 1-1, - 36-1, - 41-1, - 25-1, - 1-1, - 36-1, - 1-1, - 33-1, - 41-1, - 1-1, - 33-1, - 1-1, - 34-1, - 1-1, - 34-1, - 35-1, - 25-1, - 1-1, - 35-1, - 1-1, - 34-1, - 25-1, - 1-1, - 25-1, - 1-1, - 34-1, - 34-1, - 1-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 1-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 37-1, - 37-1, - 37-1, - 37-1, - 37-1, - 37-1, - 83-1, - 70-1, - 70-1, - 4-1, - 4-1, - 84-1, - 1-1, - 2-1, - 1-1, - 2-1, - 2-1, - 2-1, - 2-1, - 59-1, - 1-1, - 65-1, - 71-1, - 71-1, - 10-1, - 72-1, - 1-1, - 72-1, - 73-1, - 73-1, - 25-1, - 85-1, - 1-1, - 85-1, - 85-1, - 23-1, - 77-1, - 77-1, - 77-1, - 77-1, - 23-1, - 79-1, - 79-1, - 86-1, - 26-1, - 26-1, - 26-1, - 26-1, - 26-1, - 2-1, - 1-1, - 2-1, - 2-1, - 3-1, - 86-1, - 86-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 36-1, - 36-1, - 36-1, - 2-1, - 5-1, - 6-1, - 6-1, - 6-1, - 6-1, - 6-1, - 6-1, - 7-1, - 7-1, - 7-1, - 7-1, - 1-1, - 7-1, - 7-1, - 7-1, - 41-1, - 1-1, - 41-1, - 1-1, - 1-1, - 1-1, - 7-1, - 7-1, - 1-1, - 1-1, - 2-1, - 1-1, - 2-1, - 1-1, - 34-1, - 1-1, - 34-1, - 1-1, - 25-1, - 25-1, - 25-1, - 25-1, - 25-1, - 1-1, - 1-1, - 1-1, - 48-1, - 48-1, - 48-1, - 48-1, - 48-1, - 48-1, - 48-1, - 1-1, - 1-1, - 1-1, - 3-1, - 1-1, - 3-1, - 1-1, - 41-1, - 74-1, - 75-1, - 41-1, - 1-1, - 38-1, - 39-1, - 120-1, - 49-1, - 49-1, - 60-1, - 60-1, - 40-1, - 50-1, - 51-1, - 51-1, - 106-1, - 103-1, - 103-1, - 110-1, - 110-1, - 110-1, - 110-1, - 52-1, - 52-1, - 52-1, - 52-1, - 52-1, - 52-1, - 87-1, - 87-1, - 118-1, - 117-1, - 117-1, - 64-1, - 64-1, - 76-1, - 76-1, - 98-1, - 97-1, - 97-1, - 61-1, - 61-1, - 61-1, - 61-1, - 61-1, - 61-1, - 61-1, - 61-1, - 88-1, - 116-1, - 112-1, - 112-1, - 80-1, - 80-1, - 89-1, - 89-1, - 90-1, - 90-1, - 121-1, - 121-1, - 121-1, - 91-1, - 7-1, - 94-1, - 94-1, - 94-1, - 92-1, - 101-1, - 101-1, - 96-1, - 96-1, - 111-1, - 100-1, - 100-1, - 100-1, - 19-1, - 109-1, - 109-1, - 123-1, - 123-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 107-1, - 124-1, - 124-1, - 122-1, - 122-1, - 114-1, - 114-1, - 102-1, - 102-1, - 125-1, - 125-1, - 119-1, - 63-1, - 63-1, - 63-1, - 63-1, - 63-1, - 63-1, - 81-1, - 81-1, - 81-1, - 81-1, - 81-1, - 84-1, - 84-1, - 84-1, - 115-1, - 115-1, - 115-1, - 104-1, - 104-1, - 108-1, - 108-1, - 108-1, - 108-1, - 108-1, - 99-1, - 99-1, - 99-1, - 34-1, - 33-1, - 105-1, - 105-1, - 105-1, - 105-1, - 105-1, - 1-1, - 1-1, - 1-1, - 1-1, - 41-1, - 1-1, - 41-1, - 1-1, - 41-1, - 1-1, - 41-1, - 1-1, - 3-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 113-1, - 113-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 7-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 33-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 1-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 36-1, - 1-1, - 1-1, - 41-1}; + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_latin, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_bopomofo, + unicode_script_common, + unicode_script_inherited, + unicode_script_greek, + unicode_script_common, + unicode_script_greek, + unicode_script_greek, + unicode_script_common, + unicode_script_greek, + unicode_script_greek, + unicode_script_common, + unicode_script_greek, + unicode_script_common, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_coptic, + unicode_script_greek, + unicode_script_cyrillic, + unicode_script_inherited, + unicode_script_cyrillic, + unicode_script_cyrillic, + unicode_script_armenian, + unicode_script_armenian, + unicode_script_armenian, + unicode_script_common, + unicode_script_armenian, + unicode_script_armenian, + unicode_script_hebrew, + unicode_script_hebrew, + unicode_script_hebrew, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_inherited, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_inherited, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_syriac, + unicode_script_syriac, + unicode_script_syriac, + unicode_script_arabic, + unicode_script_thaana, + unicode_script_nko, + unicode_script_samaritan, + unicode_script_samaritan, + unicode_script_mandaic, + unicode_script_mandaic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_devanagari, + unicode_script_inherited, + unicode_script_devanagari, + unicode_script_common, + unicode_script_devanagari, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_bengali, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gurmukhi, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_gujarati, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_oriya, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_tamil, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_telugu, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_kannada, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_malayalam, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_sinhala, + unicode_script_thai, + unicode_script_common, + unicode_script_thai, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_lao, + unicode_script_tibetan, + unicode_script_tibetan, + unicode_script_tibetan, + unicode_script_tibetan, + unicode_script_tibetan, + unicode_script_tibetan, + unicode_script_common, + unicode_script_tibetan, + unicode_script_myanmar, + unicode_script_georgian, + unicode_script_georgian, + unicode_script_georgian, + unicode_script_georgian, + unicode_script_common, + unicode_script_georgian, + unicode_script_hangul, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_cherokee, + unicode_script_canadian_aboriginal, + unicode_script_canadian_aboriginal, + unicode_script_canadian_aboriginal, + unicode_script_ogham, + unicode_script_runic, + unicode_script_common, + unicode_script_runic, + unicode_script_tagalog, + unicode_script_tagalog, + unicode_script_hanunoo, + unicode_script_common, + unicode_script_buhid, + unicode_script_tagbanwa, + unicode_script_tagbanwa, + unicode_script_tagbanwa, + unicode_script_khmer, + unicode_script_khmer, + unicode_script_khmer, + unicode_script_mongolian, + unicode_script_common, + unicode_script_mongolian, + unicode_script_common, + unicode_script_mongolian, + unicode_script_mongolian, + unicode_script_mongolian, + unicode_script_mongolian, + unicode_script_canadian_aboriginal, + unicode_script_limbu, + unicode_script_limbu, + unicode_script_limbu, + unicode_script_limbu, + unicode_script_limbu, + unicode_script_tai_le, + unicode_script_tai_le, + unicode_script_new_tai_lue, + unicode_script_new_tai_lue, + unicode_script_new_tai_lue, + unicode_script_new_tai_lue, + unicode_script_khmer, + unicode_script_buginese, + unicode_script_buginese, + unicode_script_tai_tham, + unicode_script_tai_tham, + unicode_script_tai_tham, + unicode_script_tai_tham, + unicode_script_tai_tham, + unicode_script_inherited, + unicode_script_balinese, + unicode_script_balinese, + unicode_script_sundanese, + unicode_script_batak, + unicode_script_batak, + unicode_script_lepcha, + unicode_script_lepcha, + unicode_script_lepcha, + unicode_script_ol_chiki, + unicode_script_sundanese, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_latin, + unicode_script_greek, + unicode_script_cyrillic, + unicode_script_latin, + unicode_script_greek, + unicode_script_latin, + unicode_script_greek, + unicode_script_latin, + unicode_script_cyrillic, + unicode_script_latin, + unicode_script_greek, + unicode_script_inherited, + unicode_script_inherited, + unicode_script_latin, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_greek, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_greek, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_braille, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_glagolitic, + unicode_script_glagolitic, + unicode_script_latin, + unicode_script_coptic, + unicode_script_coptic, + unicode_script_georgian, + unicode_script_georgian, + unicode_script_georgian, + unicode_script_tifinagh, + unicode_script_tifinagh, + unicode_script_tifinagh, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_cyrillic, + unicode_script_common, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_common, + unicode_script_common, + unicode_script_han, + unicode_script_common, + unicode_script_han, + unicode_script_common, + unicode_script_han, + unicode_script_inherited, + unicode_script_hangul, + unicode_script_common, + unicode_script_han, + unicode_script_common, + unicode_script_hiragana, + unicode_script_inherited, + unicode_script_common, + unicode_script_hiragana, + unicode_script_common, + unicode_script_katakana, + unicode_script_common, + unicode_script_katakana, + unicode_script_bopomofo, + unicode_script_hangul, + unicode_script_common, + unicode_script_bopomofo, + unicode_script_common, + unicode_script_katakana, + unicode_script_hangul, + unicode_script_common, + unicode_script_hangul, + unicode_script_common, + unicode_script_katakana, + unicode_script_katakana, + unicode_script_common, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_common, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_yi, + unicode_script_yi, + unicode_script_yi, + unicode_script_yi, + unicode_script_yi, + unicode_script_yi, + unicode_script_lisu, + unicode_script_vai, + unicode_script_vai, + unicode_script_cyrillic, + unicode_script_cyrillic, + unicode_script_bamum, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_latin, + unicode_script_latin, + unicode_script_latin, + unicode_script_syloti_nagri, + unicode_script_common, + unicode_script_phags_pa, + unicode_script_saurashtra, + unicode_script_saurashtra, + unicode_script_devanagari, + unicode_script_kayah_li, + unicode_script_common, + unicode_script_kayah_li, + unicode_script_rejang, + unicode_script_rejang, + unicode_script_hangul, + unicode_script_javanese, + unicode_script_common, + unicode_script_javanese, + unicode_script_javanese, + unicode_script_myanmar, + unicode_script_cham, + unicode_script_cham, + unicode_script_cham, + unicode_script_cham, + unicode_script_myanmar, + unicode_script_tai_viet, + unicode_script_tai_viet, + unicode_script_meetei_mayek, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_ethiopic, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_latin, + unicode_script_greek, + unicode_script_meetei_mayek, + unicode_script_meetei_mayek, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_latin, + unicode_script_armenian, + unicode_script_hebrew, + unicode_script_hebrew, + unicode_script_hebrew, + unicode_script_hebrew, + unicode_script_hebrew, + unicode_script_hebrew, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_common, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_common, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_latin, + unicode_script_common, + unicode_script_katakana, + unicode_script_common, + unicode_script_katakana, + unicode_script_common, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_hangul, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_linear_b, + unicode_script_linear_b, + unicode_script_linear_b, + unicode_script_linear_b, + unicode_script_linear_b, + unicode_script_linear_b, + unicode_script_linear_b, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_greek, + unicode_script_common, + unicode_script_greek, + unicode_script_common, + unicode_script_inherited, + unicode_script_lycian, + unicode_script_carian, + unicode_script_inherited, + unicode_script_common, + unicode_script_old_italic, + unicode_script_gothic, + unicode_script_old_permic, + unicode_script_ugaritic, + unicode_script_ugaritic, + unicode_script_old_persian, + unicode_script_old_persian, + unicode_script_deseret, + unicode_script_shavian, + unicode_script_osmanya, + unicode_script_osmanya, + unicode_script_elbasan, + unicode_script_caucasian_albanian, + unicode_script_caucasian_albanian, + unicode_script_linear_a, + unicode_script_linear_a, + unicode_script_linear_a, + unicode_script_linear_a, + unicode_script_cypriot, + unicode_script_cypriot, + unicode_script_cypriot, + unicode_script_cypriot, + unicode_script_cypriot, + unicode_script_cypriot, + unicode_script_imperial_aramaic, + unicode_script_imperial_aramaic, + unicode_script_palmyrene, + unicode_script_nabataean, + unicode_script_nabataean, + unicode_script_phoenician, + unicode_script_phoenician, + unicode_script_lydian, + unicode_script_lydian, + unicode_script_meroitic_hieroglyphs, + unicode_script_meroitic_cursive, + unicode_script_meroitic_cursive, + unicode_script_kharoshthi, + unicode_script_kharoshthi, + unicode_script_kharoshthi, + unicode_script_kharoshthi, + unicode_script_kharoshthi, + unicode_script_kharoshthi, + unicode_script_kharoshthi, + unicode_script_kharoshthi, + unicode_script_old_south_arabian, + unicode_script_old_north_arabian, + unicode_script_manichaean, + unicode_script_manichaean, + unicode_script_avestan, + unicode_script_avestan, + unicode_script_inscriptional_parthian, + unicode_script_inscriptional_parthian, + unicode_script_inscriptional_pahlavi, + unicode_script_inscriptional_pahlavi, + unicode_script_psalter_pahlavi, + unicode_script_psalter_pahlavi, + unicode_script_psalter_pahlavi, + unicode_script_old_turkic, + unicode_script_arabic, + unicode_script_brahmi, + unicode_script_brahmi, + unicode_script_brahmi, + unicode_script_kaithi, + unicode_script_sora_sompeng, + unicode_script_sora_sompeng, + unicode_script_chakma, + unicode_script_chakma, + unicode_script_mahajani, + unicode_script_sharada, + unicode_script_sharada, + unicode_script_sharada, + unicode_script_sinhala, + unicode_script_khojki, + unicode_script_khojki, + unicode_script_khudawadi, + unicode_script_khudawadi, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_grantha, + unicode_script_tirhuta, + unicode_script_tirhuta, + unicode_script_siddham, + unicode_script_siddham, + unicode_script_modi, + unicode_script_modi, + unicode_script_takri, + unicode_script_takri, + unicode_script_warang_citi, + unicode_script_warang_citi, + unicode_script_pau_cin_hau, + unicode_script_cuneiform, + unicode_script_cuneiform, + unicode_script_cuneiform, + unicode_script_cuneiform, + unicode_script_cuneiform, + unicode_script_cuneiform, + unicode_script_egyptian_hieroglyphs, + unicode_script_egyptian_hieroglyphs, + unicode_script_egyptian_hieroglyphs, + unicode_script_egyptian_hieroglyphs, + unicode_script_egyptian_hieroglyphs, + unicode_script_bamum, + unicode_script_bamum, + unicode_script_bamum, + unicode_script_mro, + unicode_script_mro, + unicode_script_mro, + unicode_script_bassa_vah, + unicode_script_bassa_vah, + unicode_script_pahawh_hmong, + unicode_script_pahawh_hmong, + unicode_script_pahawh_hmong, + unicode_script_pahawh_hmong, + unicode_script_pahawh_hmong, + unicode_script_miao, + unicode_script_miao, + unicode_script_miao, + unicode_script_katakana, + unicode_script_hiragana, + unicode_script_duployan, + unicode_script_duployan, + unicode_script_duployan, + unicode_script_duployan, + unicode_script_duployan, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_inherited, + unicode_script_common, + unicode_script_greek, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_mende_kikakui, + unicode_script_mende_kikakui, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_arabic, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_hiragana, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_common, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_han, + unicode_script_common, + unicode_script_common, + unicode_script_inherited}; static const size_t unicode_indextab[]={ 0, diff --git a/unicode/scripttest.c b/unicode/scripttest.c index 3009369..cdd182e 100644 --- a/unicode/scripttest.c +++ b/unicode/scripttest.c @@ -16,7 +16,7 @@ int main(int argc, char **argv) { if (argc >= 2) { - printf("%s\n", unicode_script(strtol(argv[1], NULL, 0))); + printf("%d\n", (int)unicode_script(strtol(argv[1], NULL, 0))); } return (0); } diff --git a/unicode/unicode.h b/unicode/unicode.h index 715722a..a857fc3 100644 --- a/unicode/unicode.h +++ b/unicode/unicode.h @@ -92,12 +92,144 @@ extern uint8_t unicode_tab_lookup(unicode_char ch, int unicode_grapheme_break(unicode_char a, unicode_char b); +typedef enum { + /* UNICODE_SCRIPT_T */ + unicode_script_unknown, + unicode_script_common, + unicode_script_latin, + unicode_script_greek, + unicode_script_cyrillic, + unicode_script_armenian, + unicode_script_hebrew, + unicode_script_arabic, + unicode_script_syriac, + unicode_script_thaana, + unicode_script_devanagari, + unicode_script_bengali, + unicode_script_gurmukhi, + unicode_script_gujarati, + unicode_script_oriya, + unicode_script_tamil, + unicode_script_telugu, + unicode_script_kannada, + unicode_script_malayalam, + unicode_script_sinhala, + unicode_script_thai, + unicode_script_lao, + unicode_script_tibetan, + unicode_script_myanmar, + unicode_script_georgian, + unicode_script_hangul, + unicode_script_ethiopic, + unicode_script_cherokee, + unicode_script_canadian_aboriginal, + unicode_script_ogham, + unicode_script_runic, + unicode_script_khmer, + unicode_script_mongolian, + unicode_script_hiragana, + unicode_script_katakana, + unicode_script_bopomofo, + unicode_script_han, + unicode_script_yi, + unicode_script_old_italic, + unicode_script_gothic, + unicode_script_deseret, + unicode_script_inherited, + unicode_script_tagalog, + unicode_script_hanunoo, + unicode_script_buhid, + unicode_script_tagbanwa, + unicode_script_limbu, + unicode_script_tai_le, + unicode_script_linear_b, + unicode_script_ugaritic, + unicode_script_shavian, + unicode_script_osmanya, + unicode_script_cypriot, + unicode_script_braille, + unicode_script_buginese, + unicode_script_coptic, + unicode_script_new_tai_lue, + unicode_script_glagolitic, + unicode_script_tifinagh, + unicode_script_syloti_nagri, + unicode_script_old_persian, + unicode_script_kharoshthi, + unicode_script_balinese, + unicode_script_cuneiform, + unicode_script_phoenician, + unicode_script_phags_pa, + unicode_script_nko, + unicode_script_sundanese, + unicode_script_lepcha, + unicode_script_ol_chiki, + unicode_script_vai, + unicode_script_saurashtra, + unicode_script_kayah_li, + unicode_script_rejang, + unicode_script_lycian, + unicode_script_carian, + unicode_script_lydian, + unicode_script_cham, + unicode_script_tai_tham, + unicode_script_tai_viet, + unicode_script_avestan, + unicode_script_egyptian_hieroglyphs, + unicode_script_samaritan, + unicode_script_lisu, + unicode_script_bamum, + unicode_script_javanese, + unicode_script_meetei_mayek, + unicode_script_imperial_aramaic, + unicode_script_old_south_arabian, + unicode_script_inscriptional_parthian, + unicode_script_inscriptional_pahlavi, + unicode_script_old_turkic, + unicode_script_kaithi, + unicode_script_batak, + unicode_script_brahmi, + unicode_script_mandaic, + unicode_script_chakma, + unicode_script_meroitic_cursive, + unicode_script_meroitic_hieroglyphs, + unicode_script_miao, + unicode_script_sharada, + unicode_script_sora_sompeng, + unicode_script_takri, + unicode_script_caucasian_albanian, + unicode_script_bassa_vah, + unicode_script_duployan, + unicode_script_elbasan, + unicode_script_grantha, + unicode_script_pahawh_hmong, + unicode_script_khojki, + unicode_script_linear_a, + unicode_script_mahajani, + unicode_script_manichaean, + unicode_script_mende_kikakui, + unicode_script_modi, + unicode_script_mro, + unicode_script_old_north_arabian, + unicode_script_nabataean, + unicode_script_palmyrene, + unicode_script_pau_cin_hau, + unicode_script_old_permic, + unicode_script_psalter_pahlavi, + unicode_script_siddham, + unicode_script_khudawadi, + unicode_script_tirhuta, + unicode_script_warang_citi + + /* UNICODE_SCRIPT_T */ +} unicode_script_t; + /* ** Look up the unicode script property, as per ** http://www.unicode.org/reports/tr24/tr24-22.html */ -const char *unicode_script(unicode_char a); +unicode_script_t unicode_script(unicode_char a); /* ** Implementation of line break rules, as per diff --git a/unicode/unicode_scripts.c b/unicode/unicode_scripts.c index 1b196b7..31aa4d8 100644 --- a/unicode/unicode_scripts.c +++ b/unicode/unicode_scripts.c @@ -8,14 +8,12 @@ #include "unicode.h" #include "scriptstab.h" -const char *unicode_script(unicode_char a) +unicode_script_t unicode_script(unicode_char a) { - uint8_t n=unicode_tab_lookup(a, unicode_indextab, - sizeof(unicode_indextab) - /sizeof(unicode_indextab[0]), - unicode_rangetab, - unicode_classtab, - sizeof(scripts)/sizeof(scripts[0])-1); - - return scripts[n]; + return unicode_tab_lookup(a, unicode_indextab, + sizeof(unicode_indextab) + /sizeof(unicode_indextab[0]), + unicode_rangetab, + unicode_classtab, + unicode_script_unknown); } |
