diff options
author | Jesse Luehrs <doy@tozt.net> | 2016-05-06 03:01:10 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2016-05-06 03:01:10 -0400 |
commit | 3f299deb6da6267283a7ad02fa4572c6583eb170 (patch) | |
tree | 8963f16796364d157259ea3a1c5155e5248f62d1 | |
parent | 2e076d52507be5dd998117ae119683c34b92b457 (diff) | |
download | libvt100-3f299deb6da6267283a7ad02fa4572c6583eb170.tar.gz libvt100-3f299deb6da6267283a7ad02fa4572c6583eb170.zip |
bail out quickly here
this way, BMP characters (which will be the vast, vast majority) spend
very little time checking, rather than having to do a full binary search
-rw-r--r-- | src/unicode-extra.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/unicode-extra.c b/src/unicode-extra.c index b226e30..c776f8b 100644 --- a/src/unicode-extra.c +++ b/src/unicode-extra.c @@ -77,6 +77,10 @@ static int vt100_is_wide_emoji(uint32_t codepoint) static size_t ranges = sizeof(vt100_wide_emoji) / sizeof(struct vt100_char_range); ssize_t low = 0, high = ranges - 1; + if (codepoint < vt100_wide_emoji[0].start) { + return 0; + } + do { ssize_t cur = (high + low) / 2; struct vt100_char_range range = vt100_wide_emoji[cur]; |