diff --git a/src/main.zig b/src/main.zig index ade940627e3c65faec063311187401d52fa64e8c..168124c31cf666bf6bb24290b4428283772560be 100644 --- a/src/main.zig +++ b/src/main.zig @@ -104,7 +104,7 @@ export fn u_hasBinaryProperty(cp: u32, prop: t.UProperty) bool { .UCHAR_GRAPHEME_CLUSTER_BREAK => false, // TODO: .UCHAR_SENTENCE_BREAK => false, // TODO: .UCHAR_WORD_BREAK => false, // TODO: - .UCHAR_BIDI_PAIRED_BRACKET_TYPE => false, // TODO: + .UCHAR_BIDI_PAIRED_BRACKET_TYPE => icu.bidiPairedBracketType(cp) != null, .UCHAR_INDIC_POSITIONAL_CATEGORY => false, // TODO: .UCHAR_INDIC_SYLLABIC_CATEGORY => false, // TODO: .UCHAR_VERTICAL_ORIENTATION => false, // TODO: diff --git a/src/root.zig b/src/root.zig index 5bf45ae3efffa754e7220cbb0e9498258954a0a8..c6e4bef4e3a24a460b460ff69451e5bd11583ace 100644 --- a/src/root.zig +++ b/src/root.zig @@ -57,3 +57,13 @@ pub fn eastAsianWidth(cp: u32) ?ucd.EastAsianWidth { } return null; } + +pub fn bidiPairedBracketType(cp: u32) ?ucd.bidi_brackets.BracketPairing.Type { + @setEvalBranchQuota(100_000); + inline for (ucd.bidi_brackets.data) |item| { + if (cp == item.codepoint) { + return item.type; + } + } + return null; +}