From 99a12fda4b1c3343231516b4b041e81367206d49 Mon Sep 17 00:00:00 2001 From: Jose Colon Rodriguez Date: Wed, 14 Feb 2024 21:44:23 -0400 Subject: emoji direct array access --- src/Grapheme.zig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Grapheme.zig b/src/Grapheme.zig index 56eecbe..9c87364 100644 --- a/src/Grapheme.zig +++ b/src/Grapheme.zig @@ -171,7 +171,9 @@ pub fn graphemeBreak( state: *u3, ) bool { // GB11: Emoji Extend* ZWJ x Emoji - if (!hasXpic(state) and emoji.isExtendedPictographic(cp1)) setXpic(state); + const cp1_is_emoji = emoji.stage_2[emoji.stage_1[cp1 >> 8] + (cp1 & 0xff)]; + const cp2_is_emoji = emoji.stage_2[emoji.stage_1[cp2 >> 8] + (cp2 & 0xff)]; + if (!hasXpic(state) and cp1_is_emoji) setXpic(state); // GB9c: Indic Conjunct Break const cp1_indic_prop = indic.stage_3[indic.stage_2[indic.stage_1[cp1 >> 8] + (cp1 & 0xff)]]; const cp2_indic_prop = indic.stage_3[indic.stage_2[indic.stage_1[cp2 >> 8] + (cp2 & 0xff)]]; @@ -227,7 +229,7 @@ pub fn graphemeBreak( // GB11: Emoji Extend* ZWJ x Emoji if (hasXpic(state) and cp1_gbp_prop == .zwj and - emoji.isExtendedPictographic(cp2)) + cp2_is_emoji) { unsetXpic(state); return false; -- cgit v1.2.3