diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 08:02:47 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:16 -0300 |
| commit | 0ec8d0dc6217486446f2fe2156dff136173a4ef5 (patch) | |
| tree | 8e20f9f0fec47f614492d31c7f03a03e3ac1d0c5 /src/tty | |
| parent | ba0a0f82be43dde325012b3018b186bc808bdafc (diff) | |
| download | pardes-0ec8d0dc6217486446f2fe2156dff136173a4ef5.tar.gz pardes-0ec8d0dc6217486446f2fe2156dff136173a4ef5.zip | |
Tty in a missing directory fails and makes no pane; a shell that never started answers runs
The host could not start the shell (its chdir failed), and the pane stayed
with no pty: a run written to it waited for a prompt for ever. Tty now
refuses a directory that is not there, `Tty: <dir>: no such directory`,
before making a pane; and a terminal whose shell the host could not start
(Pardes.shellFailed, from each host's spawn) answers any run with
`error shell gone`.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/tty')
| -rw-r--r-- | src/tty/tty.zig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/tty/tty.zig b/src/tty/tty.zig index e7eddec4..a41e42e2 100644 --- a/src/tty/tty.zig +++ b/src/tty/tty.zig @@ -1245,7 +1245,7 @@ const Shell = struct { const s = of(ctx); closePty(ctx, pane); // a shell still in the slot goes first, reaped s.gens[pane] +%= 1; - const child = host_io.forkShell(s.core, pane, s.prompt_rcs, s.core.shellBin(), cwd, s.core.screen_h, s.core.screen_w, s.fs) catch |err| return s.core.reportError(pane, "shell", err); + const child = host_io.forkShell(s.core, pane, s.prompt_rcs, s.core.shellBin(), cwd, s.core.screen_h, s.core.screen_w, s.fs) catch |err| return s.core.shellFailed(pane, err); const command = if (s.core.panes[pane]) |pn| pn.command != null else false; s.ptys[pane] = .{ .file = child.file, .pid = child.pid, .reader = .{ .any_future = null, .result = {} }, .cmd = .{ .watched = command and host_io.watchExit(child.pid), .fd = child.file.handle } }; var lbuf: [pardes.memory.limits.host_path_cap + 1]u8 = undefined; |
