From 28c70cabb6ceb7e5fecfd74f6984f5a995269f01 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 24 Aug 2026 23:00:52 -0300 Subject: builtins + config: Save reaches every pane holding text of its own, and takes a path argument --- src/CHANGELOG.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/CHANGELOG.md') diff --git a/src/CHANGELOG.md b/src/CHANGELOG.md index b2bc9583..3b5056b5 100644 --- a/src/CHANGELOG.md +++ b/src/CHANGELOG.md @@ -14,8 +14,19 @@ temporary file. Its directory is inherited from the pane it was opened from. - `Save` on a scratch asks for a path, prefilled with that inherited directory, and the buffer becomes an ordinary file once written. -- `Save` on a terminal writes its plaintext scrollback to a prompted path and - leaves the pane a terminal. +- `Save` reaches every pane that holds text of its own and leads its tagline: + a terminal ("Save New Newtty Del Filter") and an output buffer like + `+Search` ("Save New Newtty Del") as well as a file. Images and PDFs keep + the plain tail — their bytes on disk already are what they are. +- `Save` takes the path as an ARGUMENT (`Save notes.txt`, or a selection + chorded onto the word) and asks for one only when it was not given, the way + Find and Grep ask for a pattern. A relative path resolves against the + pane's own directory, with `.` and `..` normalized; a path that cannot be + made absolute is refused rather than written next to the process. +- Writing to a path never rewrites the pane: a terminal stays a terminal, an + output buffer keeps its rows and its place in the n/N ring, and an open file + keeps the file it has, so `Save ` is a copy and not a rename. + The scratch `+New` is still the one exception, becoming the file it names. - A dropped pane's memory outlives its frame, so a pane pointer taken during that frame stays valid until the next one repairs it. - The core owns the event loop. Each platform is now a `Host` of optional -- cgit v1.3