From 7a1423fdd616ab4337166a20686da8ee0973eef9 Mon Sep 17 00:00:00 2001 From: Jose Colon Rodriguez Date: Wed, 26 Jun 2024 13:12:58 -0400 Subject: Added changes when casefolded back --- src/FoldData.zig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/FoldData.zig') diff --git a/src/FoldData.zig b/src/FoldData.zig index 93613fe..892f78f 100644 --- a/src/FoldData.zig +++ b/src/FoldData.zig @@ -5,6 +5,7 @@ const mem = std.mem; allocator: mem.Allocator, cutoff: u21 = undefined, +cwcf: [0x10ffff]bool = [_]bool{false} ** 0x10ffff, multiple_start: u21 = undefined, stage1: []u8 = undefined, stage2: []u8 = undefined, @@ -40,6 +41,9 @@ pub fn init(allocator: mem.Allocator) !Self { errdefer allocator.free(self.stage3); for (0..len) |i| self.stage3[i] = try reader.readInt(i24, endian); + len = try reader.readInt(u16, endian); + for (0..len) |_| self.cwcf[try reader.readInt(u24, endian)] = true; + return self; } @@ -76,6 +80,6 @@ pub inline fn caseFold(self: Self, cp: u21, buf: []u21) []const u21 { } /// Returns true when caseFold(NFD(`cp`)) != NFD(`cp`). -pub inline fn changesWhenCaseFolded(_: Self, _: u21) bool { - return true; +pub inline fn changesWhenCaseFolded(self: Self, cp: u21) bool { + return self.cwcf[cp]; } -- cgit v1.2.3