summaryrefslogtreecommitdiff
path: root/docs/fs.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/fs.md')
-rw-r--r--docs/fs.md20
1 files changed, 14 insertions, 6 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 8e70af3e..6b393918 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -350,7 +350,10 @@ same tree without leaving the process.
(`LookWord list` on the root ctl lists every place in a `+Search` pane
instead, as pardes did before; `LookWord search` is the default). In a
terminal, which has no dot to go on from, a plain word is always listed
- in a `+Search` pane, its rows naming the terminal as `@p<serial>:<line>`,
+ in a `+Search` pane, its rows naming the terminal as
+ `@p<serial>:<line>:<cols>`, the columns a range, `@p3:12:5-9` (bytes 5
+ through 9 of logical line 12, 1-based, both ends in), which a look of the
+ row selects,
and look reads that pane back.
- a line written to `exec` is a middle click: a command word from
`src/builtins.zig` (`Save`, `Del`, `New`, `Newcol`, `Mount NAME DIAL`,
@@ -728,7 +731,8 @@ scratch, opens its prompt for a path, answered `answer <path>` or `answer
`answer <serial> <choice|->` when it is answered, by key or ctl, `-` for
taken back or for its pane closing with the question standing,
`changed <serial>` when a pane's file changed on disk under its unsaved
-edits (below), `unsaved <serial> <name>` for each pane an Exit, Restore,
+edits (below), `changed <serial> reloaded` when a pane with none reloaded
+it, and `changed <serial> deleted` when it was deleted or moved away, `unsaved <serial> <name>` for each pane an Exit, Restore,
Del or Delcol refuses over (before that write's `err`), and `save <serial> <name>`,
`dump <path>` when a Dump is written and `restore <path>` in a Restore's
new log after its panes' `new`s (a relative Restore path is looked for in
@@ -751,9 +755,9 @@ between words, and ends in an ellipsis, `…`, as an `err`'s reason is past
200; its serial is the pane it ran at, `-` when the keyboard was on a
column or workspace tag, or the line came to the root's ctl, `/tagexec` or
a column's ctl or exec), and `err <serial|->
-<file>: <why>` (the serial the pane's whose file it is, and for the root's
-`exec` and `look` the pane the line ran at, `err 3 exec: ...`; `-` for
-another root file) for every write or truncation the tree refused or that
+<file>: <why>` (the serial is that of the pane whose file it is, and for
+the root's `exec` and `look` the pane the line ran at, `err 3 exec: ...`;
+`-` for another root file) for every write or truncation the tree refused or that
failed -- through a mount a shell sees only the errno its kernel mapped the
reply to, usually `Invalid argument`, and this is the reason (`err 3 addr:
no match for regexp`). A record said again word for word, straight after
@@ -893,7 +897,11 @@ longer than a read comes in pieces, so a shell's `read` loop works: `exec
3<>$m/log; echo follow >&3; while read -r line <&3; do ...; done`. bash's
`read` takes a chunk, keeps one line and seeks back to just past it; a
followed log, `event` and `pty/data` answer a read at an offset inside
-their last answer from that answer again, so no record is lost. `tail -f`
+their last answer from that answer again, so no record is lost. Through a
+FUSE mount (9ns --mntgen) bash's `read -t` does not time out on a followed
+file: the read waits in the mount, where its timer cannot cut it; wrap the
+loop in `timeout N`, or read with `cat` in the background and poll what it
+wrote. `tail -f`
never writes `follow`, so it sees nothing new: use the follow open instead. `/screen` returns JSON with
`cols`, `rows`, `cursor`, a `styles` table, and row-major `cells` of
`[grapheme, style_index]`. Each open freezes one frame until close. A