diff options
Diffstat (limited to 'src/ninep')
| -rw-r--r-- | src/ninep/events.zig | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ninep/events.zig b/src/ninep/events.zig index 95b4926e..2fe25071 100644 --- a/src/ninep/events.zig +++ b/src/ninep/events.zig @@ -145,6 +145,12 @@ pub fn announce(p: *Pardes) void { } } +/// The panes present at boot are the log's first records: something said +/// before the first update ends (an init file's notice) waits for them. +fn bootFirst(p: *Pardes) void { + if (newest(p) == null) announce(p); +} + /// Records `<kind> <serial> <name>`. pub fn noteLog(p: *Pardes, kind: LogKind, pane: *Pane) void { var buf: [4 * 4096 + 64]u8 = undefined; @@ -161,6 +167,7 @@ pub fn noteMessage(p: *Pardes, serial: u32, said: []const u8) void { var buf: [pardes.Messages.LoggedMessage.cap + 32]u8 = undefined; const kept = pardes.Messages.clip(said, pardes.Messages.LoggedMessage.cap); const cut = if (kept.len < said.len) "…" else ""; + bootFirst(p); pushCounting(p, (if (serial == 0) std.fmt.bufPrint(&buf, "msg - {s}{s}\n", .{ kept, cut }) else @@ -175,6 +182,7 @@ pub fn noteMessage(p: *Pardes, serial: u32, said: []const u8) void { /// `dump <path>` when a Dump is written, `restore <path>` first in a /// Restore's replacement. pub fn notePath(p: *Pardes, what: []const u8, path: []const u8) void { + bootFirst(p); var buf: [pardes.memory.limits.host_path_cap + 16]u8 = undefined; pushLog(p, std.fmt.bufPrint(&buf, "{s} {s}\n", .{ what, path }) catch return); } |
