From 047a2b50a7ac0162d7ef38f912d41c15a47479c7 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 28 Sep 2026 13:00:06 -0300 Subject: A line written to a pane's own look or exec goes to the event reader holding the pane A script writing to pane/N/exec bypassed the client holding that pane's event file, which a middle click on it would not: acme sends a window's clicks to its event reader (look.c:53, exec.c:173). Such a line is now an F record at 0 0 carrying its text; the root's look and exec still act at once. acme takes back only origin, action and range, which a record with no place in the text cannot use, so the whole record as read is taken too, and for an empty range acts on its text. Co-Authored-By: Claude Opus 5.5 --- docs/fs.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/fs.md b/docs/fs.md index f377d32a..ccf06dd1 100644 --- a/docs/fs.md +++ b/docs/fs.md @@ -245,8 +245,13 @@ writing it renames the buffer; a relative name resolves against the pane's directory. `body` appends on write and replaces on truncating open. `sel` reads the selected text and writing it replaces the selection. `errors` appends to the directory's `+Errors` pane. Holding `event` open redirects the -pane's Look and Exec clicks to that client; writing a record back performs the -action. `ctl` reads acme's window status line — serial, tag length, body +pane's Look and Exec clicks to that client, and so does a line written to the +pane's own `look` or `exec`, a click with no place in the text: an `F` record +at `0 0` carrying the line (the root's `look` and `exec` still act at once); +writing a record back performs the action. acme takes back only ` + `, the text of that range; pardes takes the record whole as +it was read too, and for an empty range acts on its text, which is how such +a line is done. `ctl` reads acme's window status line — serial, tag length, body length, a reserved zero, the dirty flag, the width in cells, the font and the tab width — followed by rio's `current` or `notcurrent` (rio(4), `wctl`): whether the pane has the keyboard. It takes the pane's builtins (below), -- cgit v1.3