aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-04-15 13:28:29 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-04-15 13:28:29 +0200
commita7ca6ec2e70dd32ae83f725a93003b0cb147992e (patch)
tree2d049e71a338b3a0cc8d9a1c308a67bd961b2fd0 /lib/unicode/prop
parentd8ebd9aa3f650101d81b51ca0aad1f65e21169cc (diff)
Add uprop_get_blk()
Diffstat (limited to 'lib/unicode/prop')
-rw-r--r--lib/unicode/prop/uprop_get_blk.c381
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);
+}