diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-04-15 13:28:29 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-04-15 13:28:29 +0200 |
commit | a7ca6ec2e70dd32ae83f725a93003b0cb147992e (patch) | |
tree | 2d049e71a338b3a0cc8d9a1c308a67bd961b2fd0 /lib | |
parent | d8ebd9aa3f650101d81b51ca0aad1f65e21169cc (diff) |
Add uprop_get_blk()
Diffstat (limited to 'lib')
-rw-r--r-- | lib/unicode/prop/uprop_get_blk.c | 381 |
1 files changed, 381 insertions, 0 deletions
diff --git a/lib/unicode/prop/uprop_get_blk.c b/lib/unicode/prop/uprop_get_blk.c new file mode 100644 index 0000000..a1a6c39 --- /dev/null +++ b/lib/unicode/prop/uprop_get_blk.c @@ -0,0 +1,381 @@ +/* This file is autogenerated by gen/prop/blk; DO NOT EDIT. */ + +#include "__bsearch.h" +#include "macros.h" +#include "rune.h" +#include "unicode/prop.h" + +static constexpr enum uprop_blk lookup_lat1[] = { + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, + BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, +}; + +static const struct { + rune lo, hi; + enum uprop_blk val; +} lookup[] = { + {RUNE_C(0x000100), RUNE_C(0x00017F), BLK_LATIN_EXT_A}, + {RUNE_C(0x000180), RUNE_C(0x00024F), BLK_LATIN_EXT_B}, + {RUNE_C(0x000250), RUNE_C(0x0002AF), BLK_IPA_EXT}, + {RUNE_C(0x0002B0), RUNE_C(0x0002FF), BLK_MODIFIER_LETTERS}, + {RUNE_C(0x000300), RUNE_C(0x00036F), BLK_DIACRITICALS}, + {RUNE_C(0x000370), RUNE_C(0x0003FF), BLK_GREEK}, + {RUNE_C(0x000400), RUNE_C(0x0004FF), BLK_CYRILLIC}, + {RUNE_C(0x000500), RUNE_C(0x00052F), BLK_CYRILLIC_SUP}, + {RUNE_C(0x000530), RUNE_C(0x00058F), BLK_ARMENIAN}, + {RUNE_C(0x000590), RUNE_C(0x0005FF), BLK_HEBREW}, + {RUNE_C(0x000600), RUNE_C(0x0006FF), BLK_ARABIC}, + {RUNE_C(0x000700), RUNE_C(0x00074F), BLK_SYRIAC}, + {RUNE_C(0x000750), RUNE_C(0x00077F), BLK_ARABIC_SUP}, + {RUNE_C(0x000780), RUNE_C(0x0007BF), BLK_THAANA}, + {RUNE_C(0x0007C0), RUNE_C(0x0007FF), BLK_NKO}, + {RUNE_C(0x000800), RUNE_C(0x00083F), BLK_SAMARITAN}, + {RUNE_C(0x000840), RUNE_C(0x00085F), BLK_MANDAIC}, + {RUNE_C(0x000860), RUNE_C(0x00086F), BLK_SYRIAC_SUP}, + {RUNE_C(0x000870), RUNE_C(0x00089F), BLK_ARABIC_EXT_B}, + {RUNE_C(0x0008A0), RUNE_C(0x0008FF), BLK_ARABIC_EXT_A}, + {RUNE_C(0x000900), RUNE_C(0x00097F), BLK_DEVANAGARI}, + {RUNE_C(0x000980), RUNE_C(0x0009FF), BLK_BENGALI}, + {RUNE_C(0x000A00), RUNE_C(0x000A7F), BLK_GURMUKHI}, + {RUNE_C(0x000A80), RUNE_C(0x000AFF), BLK_GUJARATI}, + {RUNE_C(0x000B00), RUNE_C(0x000B7F), BLK_ORIYA}, + {RUNE_C(0x000B80), RUNE_C(0x000BFF), BLK_TAMIL}, + {RUNE_C(0x000C00), RUNE_C(0x000C7F), BLK_TELUGU}, + {RUNE_C(0x000C80), RUNE_C(0x000CFF), BLK_KANNADA}, + {RUNE_C(0x000D00), RUNE_C(0x000D7F), BLK_MALAYALAM}, + {RUNE_C(0x000D80), RUNE_C(0x000DFF), BLK_SINHALA}, + {RUNE_C(0x000E00), RUNE_C(0x000E7F), BLK_THAI}, + {RUNE_C(0x000E80), RUNE_C(0x000EFF), BLK_LAO}, + {RUNE_C(0x000F00), RUNE_C(0x000FFF), BLK_TIBETAN}, + {RUNE_C(0x001000), RUNE_C(0x00109F), BLK_MYANMAR}, + {RUNE_C(0x0010A0), RUNE_C(0x0010FF), BLK_GEORGIAN}, + {RUNE_C(0x001100), RUNE_C(0x0011FF), BLK_JAMO}, + {RUNE_C(0x001200), RUNE_C(0x00137F), BLK_ETHIOPIC}, + {RUNE_C(0x001380), RUNE_C(0x00139F), BLK_ETHIOPIC_SUP}, + {RUNE_C(0x0013A0), RUNE_C(0x0013FF), BLK_CHEROKEE}, + {RUNE_C(0x001400), RUNE_C(0x00167F), BLK_UCAS}, + {RUNE_C(0x001680), RUNE_C(0x00169F), BLK_OGHAM}, + {RUNE_C(0x0016A0), RUNE_C(0x0016FF), BLK_RUNIC}, + {RUNE_C(0x001700), RUNE_C(0x00171F), BLK_TAGALOG}, + {RUNE_C(0x001720), RUNE_C(0x00173F), BLK_HANUNOO}, + {RUNE_C(0x001740), RUNE_C(0x00175F), BLK_BUHID}, + {RUNE_C(0x001760), RUNE_C(0x00177F), BLK_TAGBANWA}, + {RUNE_C(0x001780), RUNE_C(0x0017FF), BLK_KHMER}, + {RUNE_C(0x001800), RUNE_C(0x0018AF), BLK_MONGOLIAN}, + {RUNE_C(0x0018B0), RUNE_C(0x0018FF), BLK_UCAS_EXT}, + {RUNE_C(0x001900), RUNE_C(0x00194F), BLK_LIMBU}, + {RUNE_C(0x001950), RUNE_C(0x00197F), BLK_TAI_LE}, + {RUNE_C(0x001980), RUNE_C(0x0019DF), BLK_NEW_TAI_LUE}, + {RUNE_C(0x0019E0), RUNE_C(0x0019FF), BLK_KHMER_SYMBOLS}, + {RUNE_C(0x001A00), RUNE_C(0x001A1F), BLK_BUGINESE}, + {RUNE_C(0x001A20), RUNE_C(0x001AAF), BLK_TAI_THAM}, + {RUNE_C(0x001AB0), RUNE_C(0x001AFF), BLK_DIACRITICALS_EXT}, + {RUNE_C(0x001B00), RUNE_C(0x001B7F), BLK_BALINESE}, + {RUNE_C(0x001B80), RUNE_C(0x001BBF), BLK_SUNDANESE}, + {RUNE_C(0x001BC0), RUNE_C(0x001BFF), BLK_BATAK}, + {RUNE_C(0x001C00), RUNE_C(0x001C4F), BLK_LEPCHA}, + {RUNE_C(0x001C50), RUNE_C(0x001C7F), BLK_OL_CHIKI}, + {RUNE_C(0x001C80), RUNE_C(0x001C8F), BLK_CYRILLIC_EXT_C}, + {RUNE_C(0x001C90), RUNE_C(0x001CBF), BLK_GEORGIAN_EXT}, + {RUNE_C(0x001CC0), RUNE_C(0x001CCF), BLK_SUNDANESE_SUP}, + {RUNE_C(0x001CD0), RUNE_C(0x001CFF), BLK_VEDIC_EXT}, + {RUNE_C(0x001D00), RUNE_C(0x001D7F), BLK_PHONETIC_EXT}, + {RUNE_C(0x001D80), RUNE_C(0x001DBF), BLK_PHONETIC_EXT_SUP}, + {RUNE_C(0x001DC0), RUNE_C(0x001DFF), BLK_DIACRITICALS_SUP}, + {RUNE_C(0x001E00), RUNE_C(0x001EFF), BLK_LATIN_EXT_ADDITIONAL}, + {RUNE_C(0x001F00), RUNE_C(0x001FFF), BLK_GREEK_EXT}, + {RUNE_C(0x002000), RUNE_C(0x00206F), BLK_PUNCTUATION}, + {RUNE_C(0x002070), RUNE_C(0x00209F), BLK_SUPER_AND_SUB}, + {RUNE_C(0x0020A0), RUNE_C(0x0020CF), BLK_CURRENCY_SYMBOLS}, + {RUNE_C(0x0020D0), RUNE_C(0x0020FF), BLK_DIACRITICALS_FOR_SYMBOLS}, + {RUNE_C(0x002100), RUNE_C(0x00214F), BLK_LETTERLIKE_SYMBOLS}, + {RUNE_C(0x002150), RUNE_C(0x00218F), BLK_NUMBER_FORMS}, + {RUNE_C(0x002190), RUNE_C(0x0021FF), BLK_ARROWS}, + {RUNE_C(0x002200), RUNE_C(0x0022FF), BLK_MATH_OPERATORS}, + {RUNE_C(0x002300), RUNE_C(0x0023FF), BLK_MISC_TECHNICAL}, + {RUNE_C(0x002400), RUNE_C(0x00243F), BLK_CONTROL_PICTURES}, + {RUNE_C(0x002440), RUNE_C(0x00245F), BLK_OCR}, + {RUNE_C(0x002460), RUNE_C(0x0024FF), BLK_ENCLOSED_ALPHANUM}, + {RUNE_C(0x002500), RUNE_C(0x00257F), BLK_BOX_DRAWING}, + {RUNE_C(0x002580), RUNE_C(0x00259F), BLK_BLOCK_ELEMENTS}, + {RUNE_C(0x0025A0), RUNE_C(0x0025FF), BLK_GEOMETRIC_SHAPES}, + {RUNE_C(0x002600), RUNE_C(0x0026FF), BLK_MISC_SYMBOLS}, + {RUNE_C(0x002700), RUNE_C(0x0027BF), BLK_DINGBATS}, + {RUNE_C(0x0027C0), RUNE_C(0x0027EF), BLK_MISC_MATH_SYMBOLS_A}, + {RUNE_C(0x0027F0), RUNE_C(0x0027FF), BLK_SUP_ARROWS_A}, + {RUNE_C(0x002800), RUNE_C(0x0028FF), BLK_BRAILLE}, + {RUNE_C(0x002900), RUNE_C(0x00297F), BLK_SUP_ARROWS_B}, + {RUNE_C(0x002980), RUNE_C(0x0029FF), BLK_MISC_MATH_SYMBOLS_B}, + {RUNE_C(0x002A00), RUNE_C(0x002AFF), BLK_SUP_MATH_OPERATORS}, + {RUNE_C(0x002B00), RUNE_C(0x002BFF), BLK_MISC_ARROWS}, + {RUNE_C(0x002C00), RUNE_C(0x002C5F), BLK_GLAGOLITIC}, + {RUNE_C(0x002C60), RUNE_C(0x002C7F), BLK_LATIN_EXT_C}, + {RUNE_C(0x002C80), RUNE_C(0x002CFF), BLK_COPTIC}, + {RUNE_C(0x002D00), RUNE_C(0x002D2F), BLK_GEORGIAN_SUP}, + {RUNE_C(0x002D30), RUNE_C(0x002D7F), BLK_TIFINAGH}, + {RUNE_C(0x002D80), RUNE_C(0x002DDF), BLK_ETHIOPIC_EXT}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF), BLK_CYRILLIC_EXT_A}, + {RUNE_C(0x002E00), RUNE_C(0x002E7F), BLK_SUP_PUNCTUATION}, + {RUNE_C(0x002E80), RUNE_C(0x002EFF), BLK_CJK_RADICALS_SUP}, + {RUNE_C(0x002F00), RUNE_C(0x002FDF), BLK_KANGXI}, + {RUNE_C(0x002FF0), RUNE_C(0x002FFF), BLK_IDC}, + {RUNE_C(0x003000), RUNE_C(0x00303F), BLK_CJK_SYMBOLS}, + {RUNE_C(0x003040), RUNE_C(0x00309F), BLK_HIRAGANA}, + {RUNE_C(0x0030A0), RUNE_C(0x0030FF), BLK_KATAKANA}, + {RUNE_C(0x003100), RUNE_C(0x00312F), BLK_BOPOMOFO}, + {RUNE_C(0x003130), RUNE_C(0x00318F), BLK_COMPAT_JAMO}, + {RUNE_C(0x003190), RUNE_C(0x00319F), BLK_KANBUN}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF), BLK_BOPOMOFO_EXT}, + {RUNE_C(0x0031C0), RUNE_C(0x0031EF), BLK_CJK_STROKES}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF), BLK_KATAKANA_EXT}, + {RUNE_C(0x003200), RUNE_C(0x0032FF), BLK_ENCLOSED_CJK}, + {RUNE_C(0x003300), RUNE_C(0x0033FF), BLK_CJK_COMPAT}, + {RUNE_C(0x003400), RUNE_C(0x004DBF), BLK_CJK_EXT_A}, + {RUNE_C(0x004DC0), RUNE_C(0x004DFF), BLK_YIJING}, + {RUNE_C(0x004E00), RUNE_C(0x009FFF), BLK_CJK}, + {RUNE_C(0x00A000), RUNE_C(0x00A48F), BLK_YI_SYLLABLES}, + {RUNE_C(0x00A490), RUNE_C(0x00A4CF), BLK_YI_RADICALS}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FF), BLK_LISU}, + {RUNE_C(0x00A500), RUNE_C(0x00A63F), BLK_VAI}, + {RUNE_C(0x00A640), RUNE_C(0x00A69F), BLK_CYRILLIC_EXT_B}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6FF), BLK_BAMUM}, + {RUNE_C(0x00A700), RUNE_C(0x00A71F), BLK_MODIFIER_TONE_LETTERS}, + {RUNE_C(0x00A720), RUNE_C(0x00A7FF), BLK_LATIN_EXT_D}, + {RUNE_C(0x00A800), RUNE_C(0x00A82F), BLK_SYLOTI_NAGRI}, + {RUNE_C(0x00A830), RUNE_C(0x00A83F), BLK_INDIC_NUMBER_FORMS}, + {RUNE_C(0x00A840), RUNE_C(0x00A87F), BLK_PHAGS_PA}, + {RUNE_C(0x00A880), RUNE_C(0x00A8DF), BLK_SAURASHTRA}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8FF), BLK_DEVANAGARI_EXT}, + {RUNE_C(0x00A900), RUNE_C(0x00A92F), BLK_KAYAH_LI}, + {RUNE_C(0x00A930), RUNE_C(0x00A95F), BLK_REJANG}, + {RUNE_C(0x00A960), RUNE_C(0x00A97F), BLK_JAMO_EXT_A}, + {RUNE_C(0x00A980), RUNE_C(0x00A9DF), BLK_JAVANESE}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9FF), BLK_MYANMAR_EXT_B}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA5F), BLK_CHAM}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA7F), BLK_MYANMAR_EXT_A}, + {RUNE_C(0x00AA80), RUNE_C(0x00AADF), BLK_TAI_VIET}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAFF), BLK_MEETEI_MAYEK_EXT}, + {RUNE_C(0x00AB00), RUNE_C(0x00AB2F), BLK_ETHIOPIC_EXT_A}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB6F), BLK_LATIN_EXT_E}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF), BLK_CHEROKEE_SUP}, + {RUNE_C(0x00ABC0), RUNE_C(0x00ABFF), BLK_MEETEI_MAYEK}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7AF), BLK_HANGUL}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7FF), BLK_JAMO_EXT_B}, + {RUNE_C(0x00D800), RUNE_C(0x00DB7F), BLK_HIGH_SURROGATES}, + {RUNE_C(0x00DB80), RUNE_C(0x00DBFF), BLK_HIGH_PU_SURROGATES}, + {RUNE_C(0x00DC00), RUNE_C(0x00DFFF), BLK_LOW_SURROGATES}, + {RUNE_C(0x00E000), RUNE_C(0x00F8FF), BLK_PUA}, + {RUNE_C(0x00F900), RUNE_C(0x00FAFF), BLK_CJK_COMPAT_IDEOGRAPHS}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB4F), BLK_ALPHABETIC_PF}, + {RUNE_C(0x00FB50), RUNE_C(0x00FDFF), BLK_ARABIC_PF_A}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F), BLK_VS}, + {RUNE_C(0x00FE10), RUNE_C(0x00FE1F), BLK_VERTICAL_FORMS}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F), BLK_HALF_MARKS}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE4F), BLK_CJK_COMPAT_FORMS}, + {RUNE_C(0x00FE50), RUNE_C(0x00FE6F), BLK_SMALL_FORMS}, + {RUNE_C(0x00FE70), RUNE_C(0x00FEFF), BLK_ARABIC_PF_B}, + {RUNE_C(0x00FF00), RUNE_C(0x00FFEF), BLK_HALF_AND_FULL_FORMS}, + {RUNE_C(0x00FFF0), RUNE_C(0x00FFFF), BLK_SPECIALS}, + {RUNE_C(0x010000), RUNE_C(0x01007F), BLK_LINEAR_B_SYLLABARY}, + {RUNE_C(0x010080), RUNE_C(0x0100FF), BLK_LINEAR_B_IDEOGRAMS}, + {RUNE_C(0x010100), RUNE_C(0x01013F), BLK_AEGEAN_NUMBERS}, + {RUNE_C(0x010140), RUNE_C(0x01018F), BLK_ANCIENT_GREEK_NUMBERS}, + {RUNE_C(0x010190), RUNE_C(0x0101CF), BLK_ANCIENT_SYMBOLS}, + {RUNE_C(0x0101D0), RUNE_C(0x0101FF), BLK_PHAISTOS}, + {RUNE_C(0x010280), RUNE_C(0x01029F), BLK_LYCIAN}, + {RUNE_C(0x0102A0), RUNE_C(0x0102DF), BLK_CARIAN}, + {RUNE_C(0x0102E0), RUNE_C(0x0102FF), BLK_COPTIC_EPACT_NUMBERS}, + {RUNE_C(0x010300), RUNE_C(0x01032F), BLK_OLD_ITALIC}, + {RUNE_C(0x010330), RUNE_C(0x01034F), BLK_GOTHIC}, + {RUNE_C(0x010350), RUNE_C(0x01037F), BLK_OLD_PERMIC}, + {RUNE_C(0x010380), RUNE_C(0x01039F), BLK_UGARITIC}, + {RUNE_C(0x0103A0), RUNE_C(0x0103DF), BLK_OLD_PERSIAN}, + {RUNE_C(0x010400), RUNE_C(0x01044F), BLK_DESERET}, + {RUNE_C(0x010450), RUNE_C(0x01047F), BLK_SHAVIAN}, + {RUNE_C(0x010480), RUNE_C(0x0104AF), BLK_OSMANYA}, + {RUNE_C(0x0104B0), RUNE_C(0x0104FF), BLK_OSAGE}, + {RUNE_C(0x010500), RUNE_C(0x01052F), BLK_ELBASAN}, + {RUNE_C(0x010530), RUNE_C(0x01056F), BLK_CAUCASIAN_ALBANIAN}, + {RUNE_C(0x010570), RUNE_C(0x0105BF), BLK_VITHKUQI}, + {RUNE_C(0x010600), RUNE_C(0x01077F), BLK_LINEAR_A}, + {RUNE_C(0x010780), RUNE_C(0x0107BF), BLK_LATIN_EXT_F}, + {RUNE_C(0x010800), RUNE_C(0x01083F), BLK_CYPRIOT_SYLLABARY}, + {RUNE_C(0x010840), RUNE_C(0x01085F), BLK_IMPERIAL_ARAMAIC}, + {RUNE_C(0x010860), RUNE_C(0x01087F), BLK_PALMYRENE}, + {RUNE_C(0x010880), RUNE_C(0x0108AF), BLK_NABATAEAN}, + {RUNE_C(0x0108E0), RUNE_C(0x0108FF), BLK_HATRAN}, + {RUNE_C(0x010900), RUNE_C(0x01091F), BLK_PHOENICIAN}, + {RUNE_C(0x010920), RUNE_C(0x01093F), BLK_LYDIAN}, + {RUNE_C(0x010980), RUNE_C(0x01099F), BLK_MEROITIC_HIEROGLYPHS}, + {RUNE_C(0x0109A0), RUNE_C(0x0109FF), BLK_MEROITIC_CURSIVE}, + {RUNE_C(0x010A00), RUNE_C(0x010A5F), BLK_KHAROSHTHI}, + {RUNE_C(0x010A60), RUNE_C(0x010A7F), BLK_OLD_SOUTH_ARABIAN}, + {RUNE_C(0x010A80), RUNE_C(0x010A9F), BLK_OLD_NORTH_ARABIAN}, + {RUNE_C(0x010AC0), RUNE_C(0x010AFF), BLK_MANICHAEAN}, + {RUNE_C(0x010B00), RUNE_C(0x010B3F), BLK_AVESTAN}, + {RUNE_C(0x010B40), RUNE_C(0x010B5F), BLK_INSCRIPTIONAL_PARTHIAN}, + {RUNE_C(0x010B60), RUNE_C(0x010B7F), BLK_INSCRIPTIONAL_PAHLAVI}, + {RUNE_C(0x010B80), RUNE_C(0x010BAF), BLK_PSALTER_PAHLAVI}, + {RUNE_C(0x010C00), RUNE_C(0x010C4F), BLK_OLD_TURKIC}, + {RUNE_C(0x010C80), RUNE_C(0x010CFF), BLK_OLD_HUNGARIAN}, + {RUNE_C(0x010D00), RUNE_C(0x010D3F), BLK_HANIFI_ROHINGYA}, + {RUNE_C(0x010E60), RUNE_C(0x010E7F), BLK_RUMI}, + {RUNE_C(0x010E80), RUNE_C(0x010EBF), BLK_YEZIDI}, + {RUNE_C(0x010EC0), RUNE_C(0x010EFF), BLK_ARABIC_EXT_C}, + {RUNE_C(0x010F00), RUNE_C(0x010F2F), BLK_OLD_SOGDIAN}, + {RUNE_C(0x010F30), RUNE_C(0x010F6F), BLK_SOGDIAN}, + {RUNE_C(0x010F70), RUNE_C(0x010FAF), BLK_OLD_UYGHUR}, + {RUNE_C(0x010FB0), RUNE_C(0x010FDF), BLK_CHORASMIAN}, + {RUNE_C(0x010FE0), RUNE_C(0x010FFF), BLK_ELYMAIC}, + {RUNE_C(0x011000), RUNE_C(0x01107F), BLK_BRAHMI}, + {RUNE_C(0x011080), RUNE_C(0x0110CF), BLK_KAITHI}, + {RUNE_C(0x0110D0), RUNE_C(0x0110FF), BLK_SORA_SOMPENG}, + {RUNE_C(0x011100), RUNE_C(0x01114F), BLK_CHAKMA}, + {RUNE_C(0x011150), RUNE_C(0x01117F), BLK_MAHAJANI}, + {RUNE_C(0x011180), RUNE_C(0x0111DF), BLK_SHARADA}, + {RUNE_C(0x0111E0), RUNE_C(0x0111FF), BLK_SINHALA_ARCHAIC_NUMBERS}, + {RUNE_C(0x011200), RUNE_C(0x01124F), BLK_KHOJKI}, + {RUNE_C(0x011280), RUNE_C(0x0112AF), BLK_MULTANI}, + {RUNE_C(0x0112B0), RUNE_C(0x0112FF), BLK_KHUDAWADI}, + {RUNE_C(0x011300), RUNE_C(0x01137F), BLK_GRANTHA}, + {RUNE_C(0x011400), RUNE_C(0x01147F), BLK_NEWA}, + {RUNE_C(0x011480), RUNE_C(0x0114DF), BLK_TIRHUTA}, + {RUNE_C(0x011580), RUNE_C(0x0115FF), BLK_SIDDHAM}, + {RUNE_C(0x011600), RUNE_C(0x01165F), BLK_MODI}, + {RUNE_C(0x011660), RUNE_C(0x01167F), BLK_MONGOLIAN_SUP}, + {RUNE_C(0x011680), RUNE_C(0x0116CF), BLK_TAKRI}, + {RUNE_C(0x011700), RUNE_C(0x01174F), BLK_AHOM}, + {RUNE_C(0x011800), RUNE_C(0x01184F), BLK_DOGRA}, + {RUNE_C(0x0118A0), RUNE_C(0x0118FF), BLK_WARANG_CITI}, + {RUNE_C(0x011900), RUNE_C(0x01195F), BLK_DIVES_AKURU}, + {RUNE_C(0x0119A0), RUNE_C(0x0119FF), BLK_NANDINAGARI}, + {RUNE_C(0x011A00), RUNE_C(0x011A4F), BLK_ZANABAZAR_SQUARE}, + {RUNE_C(0x011A50), RUNE_C(0x011AAF), BLK_SOYOMBO}, + {RUNE_C(0x011AB0), RUNE_C(0x011ABF), BLK_UCAS_EXT_A}, + {RUNE_C(0x011AC0), RUNE_C(0x011AFF), BLK_PAU_CIN_HAU}, + {RUNE_C(0x011B00), RUNE_C(0x011B5F), BLK_DEVANAGARI_EXT_A}, + {RUNE_C(0x011C00), RUNE_C(0x011C6F), BLK_BHAIKSUKI}, + {RUNE_C(0x011C70), RUNE_C(0x011CBF), BLK_MARCHEN}, + {RUNE_C(0x011D00), RUNE_C(0x011D5F), BLK_MASARAM_GONDI}, + {RUNE_C(0x011D60), RUNE_C(0x011DAF), BLK_GUNJALA_GONDI}, + {RUNE_C(0x011EE0), RUNE_C(0x011EFF), BLK_MAKASAR}, + {RUNE_C(0x011F00), RUNE_C(0x011F5F), BLK_KAWI}, + {RUNE_C(0x011FB0), RUNE_C(0x011FBF), BLK_LISU_SUP}, + {RUNE_C(0x011FC0), RUNE_C(0x011FFF), BLK_TAMIL_SUP}, + {RUNE_C(0x012000), RUNE_C(0x0123FF), BLK_CUNEIFORM}, + {RUNE_C(0x012400), RUNE_C(0x01247F), BLK_CUNEIFORM_NUMBERS}, + {RUNE_C(0x012480), RUNE_C(0x01254F), BLK_EARLY_DYNASTIC_CUNEIFORM}, + {RUNE_C(0x012F90), RUNE_C(0x012FFF), BLK_CYPRO_MINOAN}, + {RUNE_C(0x013000), RUNE_C(0x01342F), BLK_EGYPTIAN_HIEROGLYPHS}, + {RUNE_C(0x013430), RUNE_C(0x01345F), BLK_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS}, + {RUNE_C(0x014400), RUNE_C(0x01467F), BLK_ANATOLIAN_HIEROGLYPHS}, + {RUNE_C(0x016800), RUNE_C(0x016A3F), BLK_BAMUM_SUP}, + {RUNE_C(0x016A40), RUNE_C(0x016A6F), BLK_MRO}, + {RUNE_C(0x016A70), RUNE_C(0x016ACF), BLK_TANGSA}, + {RUNE_C(0x016AD0), RUNE_C(0x016AFF), BLK_BASSA_VAH}, + {RUNE_C(0x016B00), RUNE_C(0x016B8F), BLK_PAHAWH_HMONG}, + {RUNE_C(0x016E40), RUNE_C(0x016E9F), BLK_MEDEFAIDRIN}, + {RUNE_C(0x016F00), RUNE_C(0x016F9F), BLK_MIAO}, + {RUNE_C(0x016FE0), RUNE_C(0x016FFF), BLK_IDEOGRAPHIC_SYMBOLS}, + {RUNE_C(0x017000), RUNE_C(0x0187FF), BLK_TANGUT}, + {RUNE_C(0x018800), RUNE_C(0x018AFF), BLK_TANGUT_COMPONENTS}, + {RUNE_C(0x018B00), RUNE_C(0x018CFF), BLK_KHITAN_SMALL_SCRIPT}, + {RUNE_C(0x018D00), RUNE_C(0x018D7F), BLK_TANGUT_SUP}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFFF), BLK_KANA_EXT_B}, + {RUNE_C(0x01B000), RUNE_C(0x01B0FF), BLK_KANA_SUP}, + {RUNE_C(0x01B100), RUNE_C(0x01B12F), BLK_KANA_EXT_A}, + {RUNE_C(0x01B130), RUNE_C(0x01B16F), BLK_SMALL_KANA_EXT}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FF), BLK_NUSHU}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC9F), BLK_DUPLOYAN}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCAF), BLK_SHORTHAND_FORMAT_CONTROLS}, + {RUNE_C(0x01CF00), RUNE_C(0x01CFCF), BLK_ZNAMENNY_MUSIC}, + {RUNE_C(0x01D000), RUNE_C(0x01D0FF), BLK_BYZANTINE_MUSIC}, + {RUNE_C(0x01D100), RUNE_C(0x01D1FF), BLK_MUSIC}, + {RUNE_C(0x01D200), RUNE_C(0x01D24F), BLK_ANCIENT_GREEK_MUSIC}, + {RUNE_C(0x01D2C0), RUNE_C(0x01D2DF), BLK_KAKTOVIK_NUMERALS}, + {RUNE_C(0x01D2E0), RUNE_C(0x01D2FF), BLK_MAYAN_NUMERALS}, + {RUNE_C(0x01D300), RUNE_C(0x01D35F), BLK_TAI_XUAN_JING}, + {RUNE_C(0x01D360), RUNE_C(0x01D37F), BLK_COUNTING_ROD}, + {RUNE_C(0x01D400), RUNE_C(0x01D7FF), BLK_MATH_ALPHANUM}, + {RUNE_C(0x01D800), RUNE_C(0x01DAAF), BLK_SUTTON_SIGNWRITING}, + {RUNE_C(0x01DF00), RUNE_C(0x01DFFF), BLK_LATIN_EXT_G}, + {RUNE_C(0x01E000), RUNE_C(0x01E02F), BLK_GLAGOLITIC_SUP}, + {RUNE_C(0x01E030), RUNE_C(0x01E08F), BLK_CYRILLIC_EXT_D}, + {RUNE_C(0x01E100), RUNE_C(0x01E14F), BLK_NYIAKENG_PUACHUE_HMONG}, + {RUNE_C(0x01E290), RUNE_C(0x01E2BF), BLK_TOTO}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2FF), BLK_WANCHO}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4FF), BLK_NAG_MUNDARI}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7FF), BLK_ETHIOPIC_EXT_B}, + {RUNE_C(0x01E800), RUNE_C(0x01E8DF), BLK_MENDE_KIKAKUI}, + {RUNE_C(0x01E900), RUNE_C(0x01E95F), BLK_ADLAM}, + {RUNE_C(0x01EC70), RUNE_C(0x01ECBF), BLK_INDIC_SIYAQ_NUMBERS}, + {RUNE_C(0x01ED00), RUNE_C(0x01ED4F), BLK_OTTOMAN_SIYAQ_NUMBERS}, + {RUNE_C(0x01EE00), RUNE_C(0x01EEFF), BLK_ARABIC_MATH}, + {RUNE_C(0x01F000), RUNE_C(0x01F02F), BLK_MAHJONG}, + {RUNE_C(0x01F030), RUNE_C(0x01F09F), BLK_DOMINO}, + {RUNE_C(0x01F0A0), RUNE_C(0x01F0FF), BLK_PLAYING_CARDS}, + {RUNE_C(0x01F100), RUNE_C(0x01F1FF), BLK_ENCLOSED_ALPHANUM_SUP}, + {RUNE_C(0x01F200), RUNE_C(0x01F2FF), BLK_ENCLOSED_IDEOGRAPHIC_SUP}, + {RUNE_C(0x01F300), RUNE_C(0x01F5FF), BLK_MISC_PICTOGRAPHS}, + {RUNE_C(0x01F600), RUNE_C(0x01F64F), BLK_EMOTICONS}, + {RUNE_C(0x01F650), RUNE_C(0x01F67F), BLK_ORNAMENTAL_DINGBATS}, + {RUNE_C(0x01F680), RUNE_C(0x01F6FF), BLK_TRANSPORT_AND_MAP}, + {RUNE_C(0x01F700), RUNE_C(0x01F77F), BLK_ALCHEMICAL}, + {RUNE_C(0x01F780), RUNE_C(0x01F7FF), BLK_GEOMETRIC_SHAPES_EXT}, + {RUNE_C(0x01F800), RUNE_C(0x01F8FF), BLK_SUP_ARROWS_C}, + {RUNE_C(0x01F900), RUNE_C(0x01F9FF), BLK_SUP_SYMBOLS_AND_PICTOGRAPHS}, + {RUNE_C(0x01FA00), RUNE_C(0x01FA6F), BLK_CHESS_SYMBOLS}, + {RUNE_C(0x01FA70), RUNE_C(0x01FAFF), BLK_SYMBOLS_AND_PICTOGRAPHS_EXT_A}, + {RUNE_C(0x01FB00), RUNE_C(0x01FBFF), BLK_SYMBOLS_FOR_LEGACY_COMPUTING}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF), BLK_CJK_EXT_B}, + {RUNE_C(0x02A700), RUNE_C(0x02B73F), BLK_CJK_EXT_C}, + {RUNE_C(0x02B740), RUNE_C(0x02B81F), BLK_CJK_EXT_D}, + {RUNE_C(0x02B820), RUNE_C(0x02CEAF), BLK_CJK_EXT_E}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBEF), BLK_CJK_EXT_F}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5F), BLK_CJK_EXT_I}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1F), BLK_CJK_COMPAT_IDEOGRAPHS_SUP}, + {RUNE_C(0x030000), RUNE_C(0x03134F), BLK_CJK_EXT_G}, + {RUNE_C(0x031350), RUNE_C(0x0323AF), BLK_CJK_EXT_H}, + {RUNE_C(0x0E0000), RUNE_C(0x0E007F), BLK_TAGS}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF), BLK_VS_SUP}, + {RUNE_C(0x0F0000), RUNE_C(0x0FFFFF), BLK_SUP_PUA_A}, + {RUNE_C(0x100000), RUNE_C(0x10FFFF), BLK_SUP_PUA_B}, +}; + +__MLIB_DEFINE_BSEARCH(enum uprop_blk, lookup, BLK_NB) + +enum uprop_blk +uprop_get_blk(rune ch) +{ + return ch <= lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup(ch); +} |