diff options
| author | 2024-06-26 13:12:58 -0400 | |
|---|---|---|
| committer | 2024-06-26 13:12:58 -0400 | |
| commit | 7a1423fdd616ab4337166a20686da8ee0973eef9 (patch) | |
| tree | 4a931e8009acfbcdf57bbd0939ec3d0df1e1cb93 /src | |
| parent | Implemented sqeek502s case fold (diff) | |
| download | zg-7a1423fdd616ab4337166a20686da8ee0973eef9.tar.gz zg-7a1423fdd616ab4337166a20686da8ee0973eef9.tar.xz zg-7a1423fdd616ab4337166a20686da8ee0973eef9.zip | |
Added changes when casefolded back
Diffstat (limited to 'src')
| -rw-r--r-- | src/FoldData.zig | 8 |
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 | ||
| 6 | allocator: mem.Allocator, | 6 | allocator: mem.Allocator, |
| 7 | cutoff: u21 = undefined, | 7 | cutoff: u21 = undefined, |
| 8 | cwcf: [0x10ffff]bool = [_]bool{false} ** 0x10ffff, | ||
| 8 | multiple_start: u21 = undefined, | 9 | multiple_start: u21 = undefined, |
| 9 | stage1: []u8 = undefined, | 10 | stage1: []u8 = undefined, |
| 10 | stage2: []u8 = undefined, | 11 | stage2: []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`). |
| 79 | pub inline fn changesWhenCaseFolded(_: Self, _: u21) bool { | 83 | pub inline fn changesWhenCaseFolded(self: Self, cp: u21) bool { |
| 80 | return true; | 84 | return self.cwcf[cp]; |
| 81 | } | 85 | } |