summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2016-05-06 03:01:10 -0400
committerJesse Luehrs <doy@tozt.net>2016-05-06 03:01:10 -0400
commit3f299deb6da6267283a7ad02fa4572c6583eb170 (patch)
tree8963f16796364d157259ea3a1c5155e5248f62d1
parent2e076d52507be5dd998117ae119683c34b92b457 (diff)
downloadlibvt100-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.c4
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];