╭ changed ─────────────╮ │src/ui/Repo/Issues.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │398 for ([_]evt.Issue.Status{ .open, .closed }, status_labels, 0..) |status, status_label, index| { │ │399 const route = try thread.searchRoute(ui.RoutablePage.repoIssuesRoute(data.identity, status, ""), data.search); │ │400 const link = try ui.inPageTabLink(session, route, page_selected and selected_index == index); │ │401 - var label_buf: [64]u8 = undefined; │ │402 - const label = try thread.countLabel(&label_buf, status_label, data.window(status).*); │ │403 - try header.addTab(allocator, label, link, index); │ │401 + try header.addTab(allocator, status_label, try thread.countLabel(session, data.window(status).*), link, index);│ │402 } │ │403 │ │404 // labels tab │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │405 { │ │406 const labels_route = try thread.searchRoute(ui.RoutablePage.repoThreadLabelsRoute(.issue, data.identity), data.search); │ │407 const labels_link = try ui.inPageTabLink(session, labels_route, page_selected and selected_index == View.viewIndex(.labels));│ │410 - try header.addTab(allocator, labels_tab_label, labels_link, View.viewIndex(.labels)); │ │408 + try header.addTab(allocator, labels_tab_label, "", labels_link, View.viewIndex(.labels)); │ │409 } │ │410 │ │411 // new-issue tab; an edit or resolve url shows its tab in this place │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │427 .resolve => resolve_tab_label, │ │428 else => new_tab_label, │ │429 }; │ │432 - try header.addTab(allocator, label, link, View.viewIndex(.new)); │ │430 + try header.addTab(allocator, label, "", link, View.viewIndex(.new));│ │431 } │ │432 │ │433 // conflicts tab, labeled with the conflict count │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │434 if (data.conflicts.count > 0) { │ │435 const route = ui.RoutablePage.repoIssuesConflictsRoute(data.identity, "") orelse return error.RouteTooLong; │ │436 const link = try ui.inPageTabLink(session, route, page_selected and selected_index == View.viewIndex(.conflicts)); │ │439 - var label_buf: [64]u8 = undefined; │ │440 - const label = try std.fmt.bufPrint(&label_buf, conflicts_tab_label ++ " ({d})", .{data.conflicts.count}); │ │441 - try header.addTab(allocator, label, link, View.viewIndex(.conflicts)); │ │437 + try header.addTab(allocator, conflicts_tab_label, try session.page_arena.allocator().print("({d})", .{data.conflicts.count}), link, View.viewIndex(.conflicts));│ │438 } │ │439 │ │440 header.select(View.viewIndex(data.view)); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯