summaryrefslogtreecommitdiff
path: root/docs/fs.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 07:09:14 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:16 -0300
commite3e698fd14c9c7eb6906c95beeeb8e12f08f8b94 (patch)
tree3c0e8cf2c65265dc9220004bfd2d032fd048463c /docs/fs.md
parent1b513045336b3c7381c447ffa8c9167f8b1a5a0a (diff)
downloadpardes-e3e698fd14c9c7eb6906c95beeeb8e12f08f8b94.tar.gz
pardes-e3e698fd14c9c7eb6906c95beeeb8e12f08f8b94.zip
A refusal over unsaved panes logs each as `unsaved <serial> <name>`, and its err never cuts a list
Exit's refusal joined every name into one err, cut at the record's cap in mid-name, so a script could not tell which panes held it up. Each pane is now an `unsaved` record before the err, and the err names the one pane or counts them: `4 unsaved panes: Modified (Exit again to discard)`. Restore, Del and Delcol refuse the same way. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs/fs.md')
-rw-r--r--docs/fs.md15
1 files changed, 10 insertions, 5 deletions
diff --git a/docs/fs.md b/docs/fs.md
index ffee9124..49f4e4f1 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -165,10 +165,14 @@ Each builtin declares its scope in src/builtins.zig (`scope = .session`;
every setting is one, the rest act on a pane). `/ctl` takes the session's
builtins, one a line, at whichever pane has the keyboard as each runs --
`Newcol`, `Dump`, `Mount name dial`, `Theme ink`, `Verbose off`; `Exit`,
-which quits the editor as acme's does (it refuses once, naming each pane with
-unsaved text, a `+New` scratch of 100 bytes or more too, in one line,
-`<name>, <name>: Modified (Exit again to discard)`, whether it came
-through a `ctl` write or a click; an `Exit` after more editing refuses
+which quits the editor as acme's does (it refuses once over the panes with
+unsaved text, a `+New` scratch of 100 bytes or more too, whether it came
+through a `ctl` write or a click: first one `/log` record per pane,
+`unsaved <serial> <name>`, then the write fails with one line that is
+never a list cut short, `<name>: Modified (Exit again to discard)` for one
+pane, `4 unsaved panes: Modified (Exit again to discard)` for more, and
+the `err` record says the same; each pane's message row names it. Restore,
+Del and Delcol refuse the same way, with their own word; an `Exit` after more editing refuses
again naming only the panes edited since the last refusal, as acme's does,
and an `Exit` with nothing edited since quits, throwing all of it away; a scratch or a
command's output under 100 bytes is not asked about, as acme's winclean
@@ -710,7 +714,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), and `save <serial> <name>`,
+edits (below), `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
`DumpDir`, then in the directory pardes started in; a bare Restore takes the