╭ changed ──────╮ │src/ui/User.zig│ ╰───────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │212 const aa = item_arena.allocator(); │ │213 var items: std.ArrayList(ui.widget.FlowBox.Item) = .empty; │ │214 if (data.forks_start > 0) │ │215 - try items.append(aa, .{ .text = "← previous", .link = try std.fmt.allocPrint(aa, "a:/{s}/forks/start:{d}", .{ data.user.name, data.forks_start -| page_size }) });│ │215 + try items.append(aa, .{ .text = "← previous", .link = try aa.print("a:/{s}/forks/start:{d}", .{ data.user.name, data.forks_start -| page_size }) }); │ │216 for (data.forks) |fork_item| { │ │217 // the fork route names the forker │ │218 - const identity = try std.fmt.allocPrint(aa, "{s}:{s}", .{ data.user.name, fork_item.target.name }); │ │218 + const identity = try aa.print("{s}:{s}", .{ data.user.name, fork_item.target.name }); │ │219 const route = ui.RoutablePage.forkPatchRoute(identity, fork_item.id) orelse return error.RouteTooLong; │ │220 try items.append(aa, .{ │ │221 - .text = try std.fmt.allocPrint(aa, "{s} - {s}", .{ fork_item.target.name, fork_item.title }), │ │222 - .link = try std.fmt.allocPrint(aa, "a:{s}", .{try route.toUrl(session.page_arena)}), │ │221 + .text = try aa.print("{s} - {s}", .{ fork_item.target.name, fork_item.title }), │ │222 + .link = try aa.print("a:{s}", .{try route.toUrl(session.page_arena)}), │ │223 .bottom_label = if (fork_item.target.read_access == .private) "(private)" else "", │ │224 }); │ │225 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │226 if (data.forks_next_start) |next_start| │ │227 - try items.append(aa, .{ .text = "next →", .link = try std.fmt.allocPrint(aa, "a:/{s}/forks/start:{d}", .{ data.user.name, next_start }) });│ │227 + try items.append(aa, .{ .text = "next →", .link = try aa.print("a:/{s}/forks/start:{d}", .{ data.user.name, next_start }) }); │ │228 try list.setItems(allocator, items.items); │ │229 try stack.children.put(allocator, list.getFocus().id, .{ .flow_box_scroll = list }); │ │230 } │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │397 if (data.repos_start > 0) { │ │398 var prev = route; │ │399 prev.user_repos.start = data.repos_start -| page_size; │ │400 - try items.append(aa, .{ .text = "← previous", .link = try std.fmt.allocPrint(aa, "a:{s}", .{try prev.toUrl(&arena)}) });│ │400 + try items.append(aa, .{ .text = "← previous", .link = try aa.print("a:{s}", .{try prev.toUrl(&arena)}) }); │ │401 } │ │402 for (data.repos) |repo| │ │403 // clicking a repo opens its page; the "a:" prefix makes the web │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │404 // renderer emit an <a href="/alice:foo"> anchor. │ │405 try items.append(aa, .{ │ │406 - .text = if (repo.event.description.len == 0) repo.event.name else try std.fmt.allocPrint(aa, "{s} - {s}", .{ repo.event.name, repo.event.description }),│ │407 - .link = try std.fmt.allocPrint(aa, "a:/{s}:{s}", .{ data.user.name, repo.event.name }), │ │406 + .text = if (repo.event.description.len == 0) repo.event.name else try aa.print("{s} - {s}", .{ repo.event.name, repo.event.description }), │ │407 + .link = try aa.print("a:/{s}:{s}", .{ data.user.name, repo.event.name }), │ │408 .bottom_label = if (repo.event.read_access == .private) "(private)" else "", │ │409 }); │ │410 if (data.repos_next_start) |next_start| { │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │411 var next = route; │ │412 next.user_repos.start = next_start; │ │413 - try items.append(aa, .{ .text = "next →", .link = try std.fmt.allocPrint(aa, "a:{s}", .{try next.toUrl(&arena)}) });│ │413 + try items.append(aa, .{ .text = "next →", .link = try aa.print("a:{s}", .{try next.toUrl(&arena)}) }); │ │414 } │ │415 try list.setItems(allocator, items.items); │ │416 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯