summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/fs.md16
1 files changed, 10 insertions, 6 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 6c388f20..f23129ba 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -65,9 +65,10 @@ A `9ns --unix` mount lives in the private namespace of the command it runs,
and nothing outside that command sees it. The mount everyone on the machine
shares is the registry one, `9ns --mntgen` (default `/mnt/9p`): every running
editor posts itself there, so `$NINE_MOUNT/pardes/<pid>/` is that editor's tree
-for any process. 9ns exports `$NINE_MOUNT` to everything it starts, so a
-script checks that variable to know the mount is there, and takes `<pid>` from
-the name of `$PARDES_9P` (`pardes-9p-<pid>.sock`). A new pane made through `pane/new` is a scratch named
+for any process, and `$NINE_MOUNT/pardes/NAME/` a `--detach=NAME` session's.
+9ns exports `$NINE_MOUNT` to everything it starts, so a script checks that
+variable to know the mount is there, and takes the name from `$PARDES_9P`
+(`pardes-9p-<pid or NAME>.sock`). A new pane made through `pane/new` is a scratch named
`<dir>/+New` until it is given a name, and closing a column's last pane
leaves such a `+New` in its place (`Delcol` closes the column).
@@ -165,8 +166,8 @@ argument to a builtin that takes none, or none to one that needs it (`Msg`,
`bad value in control message "X"` for a setting's value it does not take
(for `Theme`, naming the themes that share the name's first letter, since
all of them, `ThemeSel`'s list, are too many for an error);
-and `not a session control message "X"` or `not a window control message
-"X"` for a word of the other ctl. 9ns maps them all to EINVAL, and a write
+and `not a session control message "X": write it to pane/<n>/ctl` or `not
+a window control message "X": write it to /ctl` for a word of the other ctl. 9ns maps them all to EINVAL, and a write
refused here has done nothing. A line that then fails as it runs fails the
write with the error the editor reports for it and the line, e.g. `Mount:
AlreadyMounted "Mount peer /tmp/s"` (EIO), and `control message needs its
@@ -480,7 +481,10 @@ Control characters in a record become spaces, so a record is one line.
up to a newline -- bytes here, where acme counts runes. Every offset and
count pardes serves is in bytes, `#n` and `q0`/`q1` too; the event count
follows them rather than switch alone, so an acme library reads pardes
-correctly for ASCII text and not beyond it.) An
+correctly for ASCII text and not beyond it. A `#n` that falls inside a
+character, a multibyte rune or a grapheme cluster, snaps back to where that
+character starts, and `addr` reads back the snapped offset. A click in a
+tag gives offsets into the whole tag as `tag` reads it, the path first.) An
open freezes the ring's text the way `/screen` freezes a frame: reads walk it
and end. Writing `follow` to that same open makes reads past it wait for the
next record, one per read; a follower the ring outran reads `lost N` first.