╭ changed ──────────────╮ │src/ui/Repo/Commits.zig│ ╰───────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │814 }; │ │815 │ │816 // the "a:" navigation link for the commits page walking from commit `oid` within │ │793 -// `identity`, showing the selected commit's first `start` hunks (0 = default). │ │794 -fn commitsLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, oid: []const u8, start: usize) ![]const u8 { │ │795 - const route = ui.RoutablePage.repoCommitsRoute(identity, .object, oid, start) orelse return error.RouteTooLong; │ │817 +// `identity`, windowing the selected commit's diff from hunk `start`, filtered │ │818 +// to `path` ("" = every file). │ │819 +fn commitsLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, oid: []const u8, start: usize, path: []const u8) ![]const u8 {│ │820 + const route = ui.RoutablePage.repoCommitsRoute(identity, .object, oid, start, path) orelse return error.RouteTooLong; │ │821 const url = try route.toUrl(page_arena); │ │822 return std.fmt.allocPrint(page_arena.allocator(), "a:{s}", .{url}); │ │823 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │833 // the in-page "ai:" anchor for selecting `oid` in `identity`'s commit list. it │ │834 // points at the same route as commitsLink but the "ai:" prefix keeps wasm clicks │ │835 // in-page (crossPageLink ignores it); the href is only followed with js off. │ │811 -fn commitRowLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, oid: []const u8) ![]const u8 { │ │812 - const route = ui.RoutablePage.repoCommitsRoute(identity, .object, oid, 0) orelse return error.RouteTooLong; │ │836 +fn commitRowLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, oid: []const u8, path: []const u8) ![]const u8 {│ │837 + const route = ui.RoutablePage.repoCommitsRoute(identity, .object, oid, 0, path) orelse return error.RouteTooLong; │ │838 const url = try route.toUrl(page_arena); │ │839 return std.fmt.allocPrint(page_arena.allocator(), "ai:{s}", .{url}); │ │840 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯