╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ─────────────╮ │src/ui/Repo/Issues.zig│ ╰──────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │893 // href is only followed with js off. │ │894 fn issueRowLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, id: []const u8) ![]const u8 { │ │895 const route = ui.RoutablePage.repoIssuesRoute(identity, .open, "", id) orelse return error.RouteTooLong;│ │896 - const url = try route.urlAlloc(page_arena); │ │896 + const url = try route.toUrl(page_arena); │ │897 return std.fmt.allocPrint(page_arena.allocator(), "ai:{s}", .{url}); │ │898 } │ │899 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │901 fn tagLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, status: evt.Issue.Status, tag: []const u8) ![]const u8 {│ │902 const encoded = try ui.urlEncodeRef(page_arena.allocator(), tag); │ │903 const route = ui.RoutablePage.repoIssuesRoute(identity, status, encoded, "") orelse return error.RouteTooLong; │ │904 - const url = try route.urlAlloc(page_arena); │ │904 + const url = try route.toUrl(page_arena); │ │905 return std.fmt.allocPrint(page_arena.allocator(), "a:{s}", .{url}); │ │906 } │ │907 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │922 // a list tab per status, labeled with its listing's issue count │ │923 for ([_]evt.Issue.Status{ .open, .closed }) |status| { │ │924 const route = ui.RoutablePage.repoIssuesRoute(data.identity, status, data.tag, "") orelse return error.RouteTooLong; │ │925 - const link = try std.fmt.allocPrint(aa, "ai:{s}", .{try route.urlAlloc(session.page_arena)}); │ │925 + const link = try std.fmt.allocPrint(aa, "ai:{s}", .{try route.toUrl(session.page_arena)}); │ │926 const label = try std.fmt.allocPrint(aa, "{s} ({d})", .{ @tagName(status), data.window(status).count }); │ │927 var text_box = try wgt.TextBox(ui.Widget).init(allocator, label, .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │928 errdefer text_box.deinit(allocator); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │939 // tags tab, labeled with the active tag filter │ │940 { │ │941 const tags_route = ui.RoutablePage.repoIssuesTagsRoute(data.identity, data.tag) orelse return error.RouteTooLong;│ │942 - const tags_link = try std.fmt.allocPrint(aa, "ai:{s}", .{try tags_route.urlAlloc(session.page_arena)}); │ │942 + const tags_link = try std.fmt.allocPrint(aa, "ai:{s}", .{try tags_route.toUrl(session.page_arena)}); │ │943 const label = if (data.tag.len == 0) "tags" else blk: { │ │944 const decoded = std.Uri.percentDecodeInPlace(try aa.dupe(u8, data.tag)); │ │945 break :blk try std.fmt.allocPrint(aa, "tags ({s})", .{decoded}); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───────────╮ │src/ui/Repo/Refs.zig│ ╰────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │353 fn windowLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, kind: ui.RoutablePage.RefKind, name: []const u8) ![]const u8 {│ │354 const encoded = try ui.urlEncodeRef(page_arena.allocator(), name); │ │355 const route = ui.RoutablePage.repoRefsRoute(identity, kind, encoded) orelse return error.RouteTooLong; │ │356 - const url = try route.urlAlloc(page_arena); │ │356 + const url = try route.toUrl(page_arena); │ │357 return std.fmt.allocPrint(page_arena.allocator(), "a:{s}", .{url}); │ │358 } │ │359 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │368 }; │ │369 const value = try ui.urlEncodeRef(aa, name); │ │370 const route = ui.RoutablePage.repoFilesRoute(identity, ref_or_oid, value, "", 0) orelse return error.RouteTooLong;│ │371 - const url = try route.urlAlloc(page_arena); │ │371 + const url = try route.toUrl(page_arena); │ │372 return std.fmt.allocPrint(aa, "a:{s}", .{url}); │ │373 } │ │374 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯