summaryrefslogtreecommitdiff
path: root/src/FoldData.zig
diff options
context:
space:
mode:
authorGravatar Jose Colon Rodriguez2024-06-26 13:12:58 -0400
committerGravatar Jose Colon Rodriguez2024-06-26 13:12:58 -0400
commit7a1423fdd616ab4337166a20686da8ee0973eef9 (patch)
tree4a931e8009acfbcdf57bbd0939ec3d0df1e1cb93 /src/FoldData.zig
parentImplemented sqeek502s case fold (diff)
downloadzg-7a1423fdd616ab4337166a20686da8ee0973eef9.tar.gz
zg-7a1423fdd616ab4337166a20686da8ee0973eef9.tar.xz
zg-7a1423fdd616ab4337166a20686da8ee0973eef9.zip
Added changes when casefolded back
Diffstat (limited to 'src/FoldData.zig')
-rw-r--r--src/FoldData.zig8
1 files changed, 6 insertions, 2 deletions
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;
5 5
6allocator: mem.Allocator, 6allocator: mem.Allocator,
7cutoff: u21 = undefined, 7cutoff: u21 = undefined,
8cwcf: [0x10ffff]bool = [_]bool{false} ** 0x10ffff,
8multiple_start: u21 = undefined, 9multiple_start: u21 = undefined,
9stage1: []u8 = undefined, 10stage1: []u8 = undefined,
10stage2: []u8 = undefined, 11stage2: []u8 = undefined,
@@ -40,6 +41,9 @@ pub fn init(allocator: mem.Allocator) !Self {
40 errdefer allocator.free(self.stage3); 41 errdefer allocator.free(self.stage3);
41 for (0..len) |i| self.stage3[i] = try reader.readInt(i24, endian); 42 for (0..len) |i| self.stage3[i] = try reader.readInt(i24, endian);
42 43
44 len = try reader.readInt(u16, endian);
45 for (0..len) |_| self.cwcf[try reader.readInt(u24, endian)] = true;
46
43 return self; 47 return self;
44} 48}
45 49
@@ -76,6 +80,6 @@ pub inline fn caseFold(self: Self, cp: u21, buf: []u21) []const u21 {
76} 80}
77 81
78/// Returns true when caseFold(NFD(`cp`)) != NFD(`cp`). 82/// Returns true when caseFold(NFD(`cp`)) != NFD(`cp`).
79pub inline fn changesWhenCaseFolded(_: Self, _: u21) bool { 83pub inline fn changesWhenCaseFolded(self: Self, cp: u21) bool {
80 return true; 84 return self.cwcf[cp];
81} 85}