From 50093cd4fe4461c657e9133113016db1124904d9 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 3 May 2024 17:45:08 +0200 Subject: Don’t use binary search MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gen/prop/na1 | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'gen/prop/na1') diff --git a/gen/prop/na1 b/gen/prop/na1 index 776bf11..c01ee60 100755 --- a/gen/prop/na1 +++ b/gen/prop/na1 @@ -10,7 +10,6 @@ BEGIN { print "/* This file is autogenerated by gen/prop/na1; DO NOT EDIT. */" print "" - print "#include \"_bsearch.h\"" print "#include \"macros.h\"" print "#include \"rune.h\"" print "#include \"unicode/prop.h\"" @@ -18,27 +17,22 @@ BEGIN { print "#define _(...) \\" print "\t{(const char8_t []){__VA_ARGS__}, sizeof((const char8_t []){__VA_ARGS__})}" print "" - print "static const struct {" - print "\trune k;" - print "\tstruct u8view v;" - print "} lookup[] = {" + print "static const struct u8view lookup[] = {" } length($11) > 0 { gsub(/./, "\x27&\x27, ", $11) sub(/, $/, "", $11) - printf "\t{RUNE_C(0x%06X), _(%s)},\n", strtonum("0X" $1), $11 + printf "\t[RUNE_C(0x%06X)] = _(%s),\n", strtonum("0X" $1), $11 } END { print "};" print "" - print "_MLIB_DEFINE_BSEARCH_KV(struct u8view, lookup, (struct u8view){})" - print "" print "struct u8view" print "uprop_get_na1(rune ch)" print "{" - print "\treturn mlib_lookup_kv(ch);" + print "\treturn ch < lengthof(lookup) ? lookup[ch] : (struct u8view){};" print "}" } ' data/UnicodeData -- cgit v1.2.3