From b85f9e56fa04291fc1791bdceae7b0f2c284114c Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 04:20:34 -0300 Subject: A column's ctl refuses as the other ctls do, and a bare answer says what it takes A column's ctl refused an unknown word in words 9ns maps to EIO, and took New extra as New. It now refuses the word as unknown control message (EINVAL, as the root and pane ctls) and any word but Tty with an argument as wrong #args. A bare answer on a pane's ctl says answer takes a choice or -, not unknown control message. Co-Authored-By: Claude Opus 5.5 --- src/ninep/ctl.zig | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/ninep/ctl.zig') diff --git a/src/ninep/ctl.zig b/src/ninep/ctl.zig index 1b1288a1..424245eb 100644 --- a/src/ninep/ctl.zig +++ b/src/ninep/ctl.zig @@ -660,6 +660,8 @@ pub fn writePane(p: *Pardes, req: Req, pane: *Pane) Reply { if (!held) return tree.failText(req.tag, E.INVAL, e_not_locked); held = false; if (apply) pane.fs.lock = null; + } else if (std.mem.eql(u8, line, "answer")) { + return tree.failText(req.tag, E.INVAL, "answer takes a choice or -"); } else if (std.mem.startsWith(u8, line, "answer ")) { // The pane's question (its `ask` in the log), answered. const choice = std.mem.trim(u8, line["answer ".len..], " "); -- cgit v1.3