fix: case fold find pattern in find_all_ranges mode .case_folded
This commit is contained in:
parent
29231ad87a
commit
891b80e5bb
1 changed files with 11 additions and 1 deletions
|
|
@ -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 = .{
|
var ctx: Ctx = .{
|
||||||
.allocator = allocator,
|
.allocator = allocator,
|
||||||
.pattern = pattern,
|
.pattern = pattern_,
|
||||||
.data = data,
|
.data = data,
|
||||||
.callback = callback,
|
.callback = callback,
|
||||||
.buf = try allocator.alloc(u8, pattern.len * 2),
|
.buf = try allocator.alloc(u8, pattern.len * 2),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue