summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jose Colon Rodriguez2024-02-14 21:44:23 -0400
committerGravatar Jose Colon Rodriguez2024-02-14 21:44:23 -0400
commit99a12fda4b1c3343231516b4b041e81367206d49 (patch)
treea61aedef6eaaebf3ec9c17e31d052ed63e393a89 /src
parentgbp and indic direct array access (diff)
downloadzg-99a12fda4b1c3343231516b4b041e81367206d49.tar.gz
zg-99a12fda4b1c3343231516b4b041e81367206d49.tar.xz
zg-99a12fda4b1c3343231516b4b041e81367206d49.zip
emoji direct array access
Diffstat (limited to 'src')
-rw-r--r--src/Grapheme.zig6
1 files changed, 4 insertions, 2 deletions
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(
171 state: *u3, 171 state: *u3,
172) bool { 172) bool {
173 // GB11: Emoji Extend* ZWJ x Emoji 173 // GB11: Emoji Extend* ZWJ x Emoji
174 if (!hasXpic(state) and emoji.isExtendedPictographic(cp1)) setXpic(state); 174 const cp1_is_emoji = emoji.stage_2[emoji.stage_1[cp1 >> 8] + (cp1 & 0xff)];
175 const cp2_is_emoji = emoji.stage_2[emoji.stage_1[cp2 >> 8] + (cp2 & 0xff)];
176 if (!hasXpic(state) and cp1_is_emoji) setXpic(state);
175 // GB9c: Indic Conjunct Break 177 // GB9c: Indic Conjunct Break
176 const cp1_indic_prop = indic.stage_3[indic.stage_2[indic.stage_1[cp1 >> 8] + (cp1 & 0xff)]]; 178 const cp1_indic_prop = indic.stage_3[indic.stage_2[indic.stage_1[cp1 >> 8] + (cp1 & 0xff)]];
177 const cp2_indic_prop = indic.stage_3[indic.stage_2[indic.stage_1[cp2 >> 8] + (cp2 & 0xff)]]; 179 const cp2_indic_prop = indic.stage_3[indic.stage_2[indic.stage_1[cp2 >> 8] + (cp2 & 0xff)]];
@@ -227,7 +229,7 @@ pub fn graphemeBreak(
227 // GB11: Emoji Extend* ZWJ x Emoji 229 // GB11: Emoji Extend* ZWJ x Emoji
228 if (hasXpic(state) and 230 if (hasXpic(state) and
229 cp1_gbp_prop == .zwj and 231 cp1_gbp_prop == .zwj and
230 emoji.isExtendedPictographic(cp2)) 232 cp2_is_emoji)
231 { 233 {
232 unsetXpic(state); 234 unsetXpic(state);
233 return false; 235 return false;