Merge remote-tracking branch 'upstream/main' into grapheme-break

This commit is contained in:
Jacob Sandlund
2025-11-24 11:44:47 -05:00
6 changed files with 121 additions and 34 deletions

View File

@@ -17,15 +17,13 @@ pub const Properties = packed struct {
grapheme_break: uucode.x.types.GraphemeBreakNoControl = .other,
/// Emoji VS compatibility
emoji_vs_text: bool = false,
emoji_vs_emoji: bool = false,
emoji_vs_base: bool = false,
// Needed for lut.Generator
pub fn eql(a: Properties, b: Properties) bool {
return a.width == b.width and
a.grapheme_break == b.grapheme_break and
a.emoji_vs_text == b.emoji_vs_text and
a.emoji_vs_emoji == b.emoji_vs_emoji;
a.emoji_vs_base == b.emoji_vs_base;
}
// Needed for lut.Generator
@@ -37,14 +35,12 @@ pub const Properties = packed struct {
\\.{{
\\ .width= {},
\\ .grapheme_break= .{s},
\\ .emoji_vs_text= {},
\\ .emoji_vs_emoji= {},
\\ .emoji_vs_base= {},
\\}}
, .{
self.width,
@tagName(self.grapheme_break),
self.emoji_vs_text,
self.emoji_vs_emoji,
self.emoji_vs_base,
});
}
};

View File

@@ -9,15 +9,13 @@ pub fn get(cp: u21) Properties {
if (cp > uucode.config.max_code_point) return .{
.width = 1,
.grapheme_break = .other,
.emoji_vs_text = false,
.emoji_vs_emoji = false,
.emoji_vs_base = false,
};
return .{
.width = uucode.get(.width, cp),
.grapheme_break = uucode.get(.grapheme_break_no_control, cp),
.emoji_vs_text = uucode.get(.is_emoji_vs_text, cp),
.emoji_vs_emoji = uucode.get(.is_emoji_vs_emoji, cp),
.emoji_vs_base = uucode.get(.is_emoji_vs_base, cp),
};
}