From e3e698fd14c9c7eb6906c95beeeb8e12f08f8b94 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 07:09:14 -0300 Subject: A refusal over unsaved panes logs each as `unsaved `, 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 --- docs/fs.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'docs') 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, -`, : 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 `, then the write fails with one line that is +never a list cut short, `: 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 ` or `answer `answer ` when it is answered, by key or ctl, `-` for taken back or for its pane closing with the question standing, `changed ` when a pane's file changed on disk under its unsaved -edits (below), and `save `, +edits (below), `unsaved ` for each pane an Exit, Restore, +Del or Delcol refuses over (before that write's `err`), and `save `, `dump ` when a Dump is written and `restore ` 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 -- cgit v1.3