summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/fs.md13
1 files changed, 8 insertions, 5 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 8ca23c85..cb9d7a45 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -697,7 +697,8 @@ An address that does not evaluate fails the write with why: `bad address
syntax`, `no match for regexp`, `address out of range`, `bad regular
expression`, `regular expression search gave up, ...`, or sam's
`addresses out of order` for a range that ends before it starts
-(`#100,#50`), which acme lets through. A failed write to `addr` leaves no
+(`#100,#50`), which acme lets through. Each end is checked first, so in a
+text shorter than 100 bytes `#100,#50` says `address out of range`. A failed write to `addr` leaves no
address at all, where acme
keeps the old one: until a good address is written, `addr` reads empty
(as an unset `limit` does), and reading, writing or truncating `data` and
@@ -712,13 +713,15 @@ while `mark` is 1; to make a loop's writes one step, write `1` (an undo
point here), then `0`, the writes, then `1` again.
One rule for what fails: a write fails whenever what it asked for fails,
-whether it came to a `ctl` (the root's, a pane's, a column's), `look`,
-`exec`, `tagexec` or a column's `exec`, or to any other file -- with an
+whether it came to a `ctl` (the root's, a pane's, a column's, a pane's
+`pty/ctl` -- its `exec` included), `look`, `exec`, `tagexec` or a
+column's `exec`, or to any other file -- with an
errno that fits, EINVAL for malformed input (an unknown word, a control
character, a command line over 1024 bytes, a `size` or `winsize` out of
range, a bad address or event record), else EIO or the errno the words
-name (ENOENT for a pane or file gone, ENOSPC for no room or slot, EBUSY
-for a held lock) -- and logs its reason exactly once, as `err <serial|->
+name (ENOENT for a pane, file or directory gone and for a Find or Grep
+that finds nothing, `grep: no match, not found`, ENOSPC for no room or
+slot, EBUSY for a held lock) -- and logs its reason exactly once, as `err <serial|->
<file>: <why>`, with no `msg` for it. A builtin a click runs (Save, get's
`Modified`, Tty with no room, Edit) is no exception. What is not a
failure: a look that finds nothing answers nothing and logs one `err`