╭ changed ─╮ │src/ui.zig│ ╰──────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────╮ │2501 } │ │2502 │ │2503 fn showCopyableText(io: std.Io, copyable_text: []const u8) !void { │ │2504 - const tty: ?std.Io.File = if (builtin.os.tag == .windows) │ │2504 + const tty: ?std.Io.File = if (builtin.target.os.tag == .windows) │ │2505 null │ │2506 else │ │2507 try std.Io.Dir.cwd().openFile(io, "/dev/tty", .{ .mode = .read_write });│ ╰──────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │2608 // an in-page tab's base route, or the exact current route when it is selected │ │2609 pub fn inPageTabLink(session: *Session, route: RoutablePage, selected: bool) ![]const u8 { │ │2610 const target = if (selected) session.data.current_page else route; │ │2611 - return std.fmt.allocPrint(session.page_arena.allocator(), "{s}{s}", .{ in_page_link_prefix, try target.toUrl(session.page_arena) });│ │2611 + return session.page_arena.allocator().print("{s}{s}", .{ in_page_link_prefix, try target.toUrl(session.page_arena) }); │ │2612 } │ │2613 │ │2614 // a button the web renderer covers with a file picker that posts the chosen │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────╮ │2641 // an absolute url is already complete │ │2642 if (!std.mem.startsWith(u8, path, "/")) return path; │ │2643 return if (session.web_port) |port| │ │2644 - try std.fmt.allocPrint(allocator, "http://localhost:{d}{s}", .{ port, path })│ │2644 + try allocator.print("http://localhost:{d}{s}", .{ port, path }) │ │2645 else │ │2646 path; │ │2647 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │2721 pub fn userLink(page_arena: *std.heap.ArenaAllocator, name: []const u8) ![]const u8 { │ │2722 const parsed = RoutablePage.Array(evt.User.name_max_len).from(name) orelse return error.RouteTooLong;│ │2723 const url = try (RoutablePage{ .user_repos = .{ .name = parsed } }).toUrl(page_arena); │ │2724 - return std.fmt.allocPrint(page_arena.allocator(), "a:{s}", .{url}); │ │2724 + return page_arena.allocator().print("a:{s}", .{url}); │ │2725 } │ │2726 │ │2727 // a focusable " author " box showing `author`, linking to their user page │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯