diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-27 17:41:55 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | 542dd489149e33915d19878a277e23b3a9c0b070 (patch) | |
| tree | aeb557581446621c366a2d3cd5888d25b37c5916 /src/ninep/screen.zig | |
| parent | c11ffe24f022d61cdd479e1ee946033c42e9a08c (diff) | |
| download | pardes-542dd489149e33915d19878a277e23b3a9c0b070.tar.gz pardes-542dd489149e33915d19878a277e23b3a9c0b070.zip | |
Record /log whether or not anyone reads it, with the editor's messages in it
/log is now one ring (64 KiB, 4 KiB on the board) that records new, del,
rename and save, and a msg line for everything the editor says. An open
freezes it, so cat log shows what happened lately and ends; writing
follow to that same open makes reads past it wait for newer records, and
a follower the ring outran reads lost N first.
The message log keeps the pane's serial, not its reusable slot.
A test now fails when the tree serves a file /README never mentions; it
caught pty/status, now documented along with typing through pty/data.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/ninep/screen.zig')
| -rw-r--r-- | src/ninep/screen.zig | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ninep/screen.zig b/src/ninep/screen.zig index 60fb5951..245a31ef 100644 --- a/src/ninep/screen.zig +++ b/src/ninep/screen.zig @@ -11,7 +11,13 @@ const Req = tree.Req; const Reply = tree.Reply; const E = tree.E; -pub const Snapshot = struct { node: u64 = 0, bytes: ?[]const u8 = null }; +pub const Snapshot = struct { + node: u64 = 0, + bytes: ?[]const u8 = null, + /// /log only: this open waits for records after `bytes`, from `next`. + follow: bool = false, + next: u64 = 0, +}; pub const snapshot_slots = 32; pub fn render(p: *Pardes) ![]u8 { |
