mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-06 07:38:21 +00:00
cli: use a caller-provided write buffer
This follows Zig's conventions more closely, where the caller owns the write buffer.
This commit is contained in:
@@ -15,9 +15,6 @@ child: ?std.process.Child = null,
|
||||
/// stdout paths.
|
||||
file_writer: std.fs.File.Writer = undefined,
|
||||
|
||||
/// The write buffer.
|
||||
buffer: [4096]u8 = undefined,
|
||||
|
||||
/// Initialize the pager. If stdout is a TTY, this spawns the pager
|
||||
/// process. Otherwise, output goes directly to stdout.
|
||||
pub fn init(alloc: Allocator) Pager {
|
||||
@@ -25,11 +22,11 @@ pub fn init(alloc: Allocator) Pager {
|
||||
}
|
||||
|
||||
/// Writes to the pager process if available; otherwise, stdout.
|
||||
pub fn writer(self: *Pager) *std.Io.Writer {
|
||||
pub fn writer(self: *Pager, buffer: []u8) *std.Io.Writer {
|
||||
if (self.child) |child| {
|
||||
self.file_writer = child.stdin.?.writer(&self.buffer);
|
||||
self.file_writer = child.stdin.?.writer(buffer);
|
||||
} else {
|
||||
self.file_writer = std.fs.File.stdout().writer(&self.buffer);
|
||||
self.file_writer = std.fs.File.stdout().writer(buffer);
|
||||
}
|
||||
return &self.file_writer.interface;
|
||||
}
|
||||
@@ -84,6 +81,7 @@ test "pager: default writer" {
|
||||
var pager: Pager = .{};
|
||||
defer pager.deinit();
|
||||
try std.testing.expect(pager.child == null);
|
||||
const w = pager.writer();
|
||||
var buf: [4096]u8 = undefined;
|
||||
const w = pager.writer(&buf);
|
||||
try w.writeAll("hello");
|
||||
}
|
||||
|
||||
@@ -94,7 +94,8 @@ pub fn run(alloc: Allocator) !u8 {
|
||||
|
||||
var pager: Pager = if (!no_pager) .init(alloc) else .{};
|
||||
defer pager.deinit();
|
||||
const writer = pager.writer();
|
||||
var buffer: [4096]u8 = undefined;
|
||||
const writer = pager.writer(&buffer);
|
||||
|
||||
if (text) |t| {
|
||||
try writer.writeAll(t);
|
||||
|
||||
Reference in New Issue
Block a user