summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 09:11:37 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:16 -0300
commita550753fb60be3cdc040c521ddaab9022f5d3248 (patch)
tree9d392076f417b6a9d53b6a1bc9ce7fe44d4e499b /docs
parent4d4818f7baf356866d323e4b337a64a3dddd8adb (diff)
downloadpardes-a550753fb60be3cdc040c521ddaab9022f5d3248.tar.gz
pardes-a550753fb60be3cdc040c521ddaab9022f5d3248.zip
Every EINVAL a write gets says why; DEL in an exec or look line is a control character
An empty name, a word written to log other than follow, a data, sel, dot or dirty write to a pane with no text, a truncate other than to zero, and a control character in a look line written through a held open were refused with no words, logged as `Invalid argument`. Each says its reason now; and DEL is refused in exec and look lines as in names. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs')
-rw-r--r--docs/fs.md8
1 files changed, 6 insertions, 2 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 0b255390..ffce848e 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -410,8 +410,8 @@ same tree without leaving the process.
its whole line, `&` jobs included; a command line is at most 1024 bytes, and a
longer one written to an exec fails the write (EINVAL, `invalid command
line: a command line is at most 1024 bytes`, and one with a control
- character but a tab, `invalid command line: it holds a control character
- other than a tab`; the root's exec logs either against the pane it would
+ character (DEL too) but a tab, `invalid command line: it holds a control
+ character (or DEL) other than a tab`; the root's exec logs either against the pane it would
have run at) before anything in it runs; a builtin's line (a long
`Msg`, an Edit block) may be longer. To run a command again, execute
its line again from its directory: `echo 'make test' > pane/<n>/exec` on
@@ -818,6 +818,10 @@ acme's `errors` only takes text, and one record stream is simpler to watch
than a file per pane. A `msg` said while a
pane is being made can precede that pane's `new`; panes present at boot are
recorded before anything else.
+Every EINVAL a write gets says why, in its reply and in its `err` record
+(`bad character in file name: an empty name`, `invalid write to log: it
+takes \`follow\` or \`follow new\``, `invalid write: this pane has no
+text`), never a bare `Invalid argument`.
Control characters, DEL and C1 controls (U+0080-U+009F) in a record become
spaces, and a byte that is not UTF-8 is written `\xNN`, so a record is one
line of UTF-8.