summaryrefslogtreecommitdiff
path: root/docs/fs.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/fs.md')
-rw-r--r--docs/fs.md8
1 files changed, 7 insertions, 1 deletions
diff --git a/docs/fs.md b/docs/fs.md
index d94a1954..0b255390 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -908,7 +908,13 @@ where the host cannot name the program, and when text is typed at the prompt)
terminal (a REPL, `less`) takes none: write to `pty/data` for it --
which is also when the third field of `pty/status` reads 1. `pty/status` is
one line, three right-aligned fields and a newline: the pty's columns and
-rows, then busy (0 or 1). The size, and `pty/ctl`'s `winsize` read back, is
+rows, then busy (0 or 1). `pty/ctl` takes `winsize C R`, `sig
+INT|TERM|HUP|QUIT|KILL` and `exec`, which starts the pane's shell again in
+its directory: one that is gone is refused before anything runs, `exec:
+<dir>: no such directory` (ENOENT), and a shell the host cannot start fails
+the write with why, as any builtin's failure does. A directory removed
+under a running shell leaves the pane its name (never `... (deleted)`), so
+an `exec` works there once the directory is back. The size, and `pty/ctl`'s `winsize` read back, is
what `winsize C R` last set (R of 1 is taken as 2: a one-row pty loses
its prompt's mark and would read busy for ever), until the pane itself
resizes and gives the pty its grid again. A line written