From 44aa1ff5bf19b4020e9b4600e5286dea35a3ba5c Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 09:07:10 -0300 Subject: A pane's word written to /tagexec or a column's exec is refused, not done at the focused pane Undo, Msg and the other pane words written to a tag no pane owns ran at whichever pane had the keyboard. They are refused as the root's ctl refuses them, EINVAL; the tag's own words (a column's New, Tty, Find, Grep) still run. Co-Authored-By: Claude Opus 5.5 --- src/ninep/ctl.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/ninep/ctl.zig') diff --git a/src/ninep/ctl.zig b/src/ninep/ctl.zig index 9cf97efc..eea033ed 100644 --- a/src/ninep/ctl.zig +++ b/src/ninep/ctl.zig @@ -365,7 +365,7 @@ fn refuse(p: *Pardes, req: Req, why: []const u8, line: []const u8) Reply { } /// `refuse`, saying which ctl takes the message instead. -fn refuseTo(p: *Pardes, req: Req, why: []const u8, line: []const u8, ctl: []const u8) Reply { +pub fn refuseTo(p: *Pardes, req: Req, why: []const u8, line: []const u8, ctl: []const u8) Reply { const room = p.fs.ename.len -| (why.len + ctl.len + 18); const text = std.fmt.bufPrint(&p.fs.ename, "{s} \"{s}\": write it to {s}", .{ why, line[0..@min(line.len, room)], ctl }) catch why; return tree.failText(req.tag, E.INVAL, text); -- cgit v1.3