summaryrefslogtreecommitdiff
path: root/src/ninep/events.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 10:38:30 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commitb03338789f5c9f3619a1ace7fcda842bc073c4dc (patch)
tree30864a1003615a2b2b5f499aaf393acc8676c3b2 /src/ninep/events.zig
parentd8382d6ea6692cf07ec6df5a7f2b86ad1f01a9df (diff)
downloadpardes-b03338789f5c9f3619a1ace7fcda842bc073c4dc.tar.gz
pardes-b03338789f5c9f3619a1ace7fcda842bc073c4dc.zip
pty/run on a fresh terminal waits for the shell's first prompt instead of answering busy
A new terminal's shell takes tens of milliseconds to draw its first prompt, and a run written meanwhile answered busy, so a script's first command was lost, while pty/status said busy 0. A line written before the first prompt now waits for it and is sent then (a respawn in between keeps it waiting for the new shell), and pty/status's third field says what a run would be told: busy while a command runs or text is typed at the prompt, not before the first prompt. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/ninep/events.zig')
-rw-r--r--src/ninep/events.zig2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ninep/events.zig b/src/ninep/events.zig
index a501d1e2..34355e5c 100644
--- a/src/ninep/events.zig
+++ b/src/ninep/events.zig
@@ -113,7 +113,7 @@ pub const LogKind = enum { new, del, rename, save };
/// A pane leaving, before its state goes with it; one never announced
/// leaves silently.
pub fn noteRetire(p: *Pardes, pane: *Pane) void {
- tree.pty.shellGone(p, pane);
+ tree.pty.shellGone(p, pane, false);
p.fs.news = true; // a read held on its event or pty/data hears it went
p.fs.listeners -|= pane.fs.readers;
// A write parked on its lock goes again, and finds the pane gone.