From 4a97bd8774e47742214ffaa96fff3aa8ee2d4649 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 4 Feb 2026 15:47:03 +0100 Subject: [PATCH] fix: strip non search relevant chars from recent files queries --- src/Project.zig | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Project.zig b/src/Project.zig index 830cc9f..4ba6bd5 100644 --- a/src/Project.zig +++ b/src/Project.zig @@ -424,7 +424,18 @@ fn simple_query_new_or_modified_files(self: *Self, from: tp.pid_ref, max: usize, return i; } -pub fn query_new_or_modified_files(self: *Self, from: tp.pid_ref, max: usize, query: []const u8) RequestError!usize { +fn strip_non_search_chars(self: *const Self, s: []const u8) error{OutOfMemory}![]const u8 { + var stripped: std.ArrayList(u8) = try .initCapacity(self.allocator, s.len); + for (s) |c| switch (c) { + ' ', '\t', '\n' => {}, + else => |c_| (try stripped.addOne(self.allocator)).* = c_, + }; + return try stripped.toOwnedSlice(self.allocator); +} + +pub fn query_new_or_modified_files(self: *Self, from: tp.pid_ref, max: usize, query_: []const u8) RequestError!usize { + const query = try self.strip_non_search_chars(query_); + defer self.allocator.free(query); if (query.len < 3) return self.simple_query_new_or_modified_files(from, max, query); defer from.send(.{ "PRJ", "new_or_modified_files_done", self.longest_file_path, query }) catch {}; @@ -511,7 +522,9 @@ fn simple_query_recent_files(self: *Self, from: tp.pid_ref, max: usize, query: [ return i; } -pub fn query_recent_files(self: *Self, from: tp.pid_ref, max: usize, query: []const u8) RequestError!usize { +pub fn query_recent_files(self: *Self, from: tp.pid_ref, max: usize, query_: []const u8) RequestError!usize { + const query = try self.strip_non_search_chars(query_); + defer self.allocator.free(query); if (query.len < 3) return self.simple_query_recent_files(from, max, query); defer from.send(.{ "PRJ", "recent_done", self.longest_file_path, query, self.files.items.len }) catch {};