summaryrefslogtreecommitdiff
path: root/src/pardes.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 02:21:57 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commit90f5c414a90afec978c8c0add58fd2a7e29acbaa (patch)
tree21a73a5ec603705cf789d39da73cceea425d9420 /src/pardes.zig
parenteece0fbe709142f6731b7dd2e84009c3a18a3806 (diff)
downloadpardes-90f5c414a90afec978c8c0add58fd2a7e29acbaa.tar.gz
pardes-90f5c414a90afec978c8c0add58fd2a7e29acbaa.zip
A read on a closed pane's event ends ENOENT, and the pane cap is ENOSPC
9ns reads an error's words, not its errno: "window shut down" came out as EIO where every other file of a gone pane gives ENOENT, and "no pane slots" as EIO. The event and pty/data reads a pane closed under now say "no such pane: its window shut" (ENOENT), and the cap says "no space for a pane: 64 max" (ENOSPC; 9ns has no word for ENFILE). Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/pardes.zig')
-rw-r--r--src/pardes.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pardes.zig b/src/pardes.zig
index f55654b6..a0b11566 100644
--- a/src/pardes.zig
+++ b/src/pardes.zig
@@ -2679,7 +2679,7 @@ test "a builtin that needs a pane reports capacity failure when every slot is fu
};
const help = std.meta.stringToEnum(Builtin, "Help") orelse return error.MissingHelpBuiltin;
exec.runBuiltin(p, help, 0, "", null);
- try std.testing.expect(std.mem.indexOf(u8, p.panes[0].?.msg[0..p.panes[0].?.msg_len], "help: no pane slots") != null);
+ try std.testing.expect(std.mem.indexOf(u8, p.panes[0].?.msg[0..p.panes[0].?.msg_len], "help: no space for a pane") != null);
}
test "Font keeps requested and acknowledged faces as separate plain state" {
@@ -5316,7 +5316,7 @@ pub const Pardes = struct {
p.raw_hover_intent = false;
look.cancelLookHover(p);
const reply = ctlfs.handle(p, req);
- if (reply.status == .err and (req.op == .write or req.op == .setattr or (req.op == .open and reply.errno == ctlfs.E.NFILE) or (req.op == .release and req.remove))) ctlfs.events.noteError(p, req, reply);
+ if (reply.status == .err and (req.op == .write or req.op == .setattr or (req.op == .open and reply.errno == ctlfs.E.NOSPC) or (req.op == .release and req.remove))) ctlfs.events.noteError(p, req, reply);
// The request was a whole step of its own, so it settles the way a
// step does: the cursor and scroll reconciled, the scripted panes
// told, and the panes it made announced to /log now rather than at