fix: case fold find pattern in find_all_ranges mode .case_folded

This commit is contained in:
CJ van den Berg 2025-11-26 12:48:29 +01:00
parent 29231ad87a
commit 891b80e5bb
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -1039,9 +1039,19 @@ const Node = union(enum) {
}
}
};
const pattern_ = switch (mode) {
.exact => pattern,
.case_folded => unicode.case_fold(allocator, pattern) catch
allocator.dupe(u8, pattern) catch
@panic("OOM find_all_ranges"),
};
defer switch (mode) {
.exact => {},
.case_folded => allocator.free(pattern_),
};
var ctx: Ctx = .{
.allocator = allocator,
.pattern = pattern,
.pattern = pattern_,
.data = data,
.callback = callback,
.buf = try allocator.alloc(u8, pattern.len * 2),