From 891b80e5bb4c6c9ea1c35c08eae527eb775beac4 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 26 Nov 2025 12:48:29 +0100 Subject: [PATCH] fix: case fold find pattern in find_all_ranges mode .case_folded --- src/buffer/Buffer.zig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/buffer/Buffer.zig b/src/buffer/Buffer.zig index b05b3d4..c5bc767 100644 --- a/src/buffer/Buffer.zig +++ b/src/buffer/Buffer.zig @@ -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),