Skip to content

Commit c35c421

Browse files
committed
Fix errors in previewer
Don't kill the previewer before waiting. And make sure to deinit the previewer (was not done before).
1 parent b32d171 commit c35c421

2 files changed

Lines changed: 7 additions & 10 deletions

File tree

src/tui/Previewer.zig

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ pub fn startThread(previewer: *Previewer, io: std.Io, loop: *vaxis.Loop(Event))
5656
previewer.thread = try io.concurrent(threadLoop, .{ previewer, io, loop });
5757
}
5858

59+
// TODO: can this be cleaned up?
5960
const ThreadLoopError = error{
6061
AccessDenied,
6162
AntivirusInterference,
@@ -154,14 +155,8 @@ pub fn run(gpa: std.mem.Allocator, io: std.Io, argv: []const []const u8) !std.pr
154155
const stderr_reader = multi_reader.reader(1);
155156

156157
while (multi_reader.fill(64, .none)) |_| {
157-
if (stdout_reader.buffered().len > 4 * 4096) {
158-
child.kill(io);
159-
break;
160-
}
161-
if (stderr_reader.buffered().len > 4 * 4096) {
162-
child.kill(io);
163-
break;
164-
}
158+
if (stdout_reader.buffered().len > 4 * 4096) break;
159+
if (stderr_reader.buffered().len > 4 * 4096) break;
165160
} else |err| switch (err) {
166161
error.EndOfStream => {},
167162
else => |e| return e,

src/tui/ui.zig

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,9 @@ pub const State = struct {
130130
};
131131
}
132132

133-
fn deinit(state: *State) void {
133+
fn deinit(state: *State, io: std.Io) void {
134+
if (state.preview) |*preview| preview.deinit(io);
135+
134136
// We must clear the window because we aren't using the alternate screen
135137
state.vx.window().clear();
136138
state.vx.render(state.tty.writer()) catch {};
@@ -144,7 +146,7 @@ pub const State = struct {
144146
io: std.Io,
145147
haystacks: [][]const u8,
146148
) !?[]const []const u8 {
147-
defer state.deinit();
149+
defer state.deinit(io);
148150

149151
var filtered = blk: {
150152
var filtered: ArrayList(Haystack) = try .initCapacity(state.allocator, haystacks.len);

0 commit comments

Comments
 (0)