diff options
| author | Gabriel Schneider <[email protected]> | 2026-10-01 05:45:07 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 05:47:40 -0300 |
| commit | fbceb4304b3665326689b6e996ceaa2bf20ed0a6 (patch) | |
| tree | a06a45af56c45721ba979b91a746ea889ad3dec7 | |
| parent | 56d7f6ee58be6e19b39567ad3e091917acb2fc06 (diff) | |
| download | pardes-fbceb4304b3665326689b6e996ceaa2bf20ed0a6.tar.gz pardes-fbceb4304b3665326689b6e996ceaa2bf20ed0a6.zip | |
addr, dot and limit on a pane with no text are refused `invalid address: this pane has no text to address`, which a mount reads as EINVAL, not EIO
9ns maps a refusal back to its errno by its words; "this pane has no
text to address" held none it knows. The reference quotes the new words.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
| -rw-r--r-- | docs/typ/reference.typ | 2 | ||||
| -rw-r--r-- | src/ninep/ctl.zig | 2 | ||||
| -rw-r--r-- | src/ninep/pane.zig | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/docs/typ/reference.typ b/docs/typ/reference.typ index d9f3012e..80fbb1ac 100644 --- a/docs/typ/reference.typ +++ b/docs/typ/reference.typ @@ -557,7 +557,7 @@ address lands on a rune boundary: `#n` or `L:C` inside a rune snaps to its start, a match covers the runes it touches, and a combining mark or a CRLF's `\r` is addressable alone. -Refusals: `this pane has no text to address` (#file("addr"), #file("dot") +Refusals: `invalid address: this pane has no text to address` (#file("addr"), #file("dot") and #file("limit") on a terminal, an image or a PDF), `bad address syntax`, `no match for regexp`, `address out of range`, `addresses out of order` (`#100,#50`), `bad regular expression`. sam details kept: `$-1` is the last line when the text ends in a newline, diff --git a/src/ninep/ctl.zig b/src/ninep/ctl.zig index 073a5b8a..b17f150a 100644 --- a/src/ninep/ctl.zig +++ b/src/ninep/ctl.zig @@ -3274,7 +3274,7 @@ test "a malformed address is bad address syntax; on a pane with no text any addr for ([_]tree.PaneFile{ .addr, .dot, .limit }) |file| for ([_][]const u8{ "1", "1x" }) |expr| { const refused = wr(p, Node.of(serialOf(p), file), expr); try testing.expectEqual(E.INVAL, refused.errno()); - try testing.expectEqualStrings("this pane has no text to address", refused.reply.ename); + try testing.expectEqualStrings("invalid address: this pane has no text to address", refused.reply.ename); }; } diff --git a/src/ninep/pane.zig b/src/ninep/pane.zig index 6a6b444f..f69813b0 100644 --- a/src/ninep/pane.zig +++ b/src/ninep/pane.zig @@ -825,7 +825,7 @@ fn pairOf(text: []const u8) ?State.Range { return .{ .q0 = q0, .q1 = q1 }; } -pub const e_no_text_address = "this pane has no text to address"; +pub const e_no_text_address = "invalid address: this pane has no text to address"; pub const e_addr_failed = "no address: the last one written to addr failed"; |
