From b43866d6ab784e518df8dbef374147367358ada9 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Wed, 30 Sep 2026 14:02:59 -0300 Subject: Save makes the directories its file goes in, always: for the pane's own name and Save path alike Whether a Save made missing directories depended on how the name had come about. Config's pane did, a name written into a missing directory did (since kkrqxtsp), and `Save path` and every other name did not, failing ENOENT instead. There is now one rule: a Save makes the parent directories of the file it writes, a pane's own or a terminal's scrollback included, and the make_dirs flag is gone. A directory it cannot make still fails the write with why, as fs.py's /nonexistent-pardes-dir case shows. fs.py now also saves into missing directories by Save path and by a written name. Co-Authored-By: Claude Opus 5.5 --- docs/fs.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/fs.md b/docs/fs.md index 334b6783..49b10a7b 100644 --- a/docs/fs.md +++ b/docs/fs.md @@ -364,8 +364,7 @@ are ENOSPC, for this open and for a look, exec, `New` or `Tty` alike. **`name`** reads the file name (a terminal's directory); a write renames the buffer (relative to the pane's directory) and marks nothing dirty; `Save` -then writes under the new name, making its directories first when the name -went into one not there. A name is one line; refused (EINVAL) are a +then writes under the new name. A name is one line; refused (EINVAL) are a second line, a blank at either end, control bytes and non-UTF-8 (`bad character in file name: a blank at its start`, ...). Up to 255 bytes a component. @@ -391,7 +390,8 @@ redo available, then `current`/`notcurrent` and a REPL's id if bound. It takes: - the pane builtins: `Del` (`Del k`/`Del j`, or `DelAbove`/`DelBelow`, give - its rows to the pane above or below), `Save [path]`, `Collapse` (fold), + its rows to the pane above or below), `Save [path]` (making the + directories the file goes in first, whichever name it writes), `Collapse` (fold), `Undo`/`Redo` (256 steps each), `Find pat`, `Edit ...`, `Tty [shell]` (a new terminal pane in its directory), and the column words acting on its column: `Delcol`, `Left`/`Right`/`Up`/`Down`. -- cgit v1.3