summaryrefslogtreecommitdiff
path: root/src/Messages.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 16:19:21 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:16 -0300
commitd6445bb28bcb4a0d0e5f29c6308682737d253ebe (patch)
tree22e4c50aa4f58643190e2aca1176b02ecd6f6c24 /src/Messages.zig
parenteb47ded95f43e50dc24b841289b68814105dcfb7 (diff)
downloadpardes-d6445bb28bcb4a0d0e5f29c6308682737d253ebe.tar.gz
pardes-d6445bb28bcb4a0d0e5f29c6308682737d253ebe.zip
A failure said while a 9P write waits on it posts no msg, only the write's err
A failure the editor said as it performed a write's work (a Save's disk write, a shell, a language server) was posted as a msg and taken back out when the write's err was logged, which it cannot be once a log follower has read it: a follower saw both. Such a failure is now posted without a msg in the first place (fs.write_waits), and nothing is taken back. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/Messages.zig')
-rw-r--r--src/Messages.zig2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/Messages.zig b/src/Messages.zig
index aebaff0c..7342f726 100644
--- a/src/Messages.zig
+++ b/src/Messages.zig
@@ -505,7 +505,7 @@ pub fn reportFailure(p: *Pardes, id: usize, text: []const u8) void {
p.fs.failures +%= 1;
// A builtin a ctl write runs: its first error is also the write's, cut
// between words.
- const failing_write = p.fs.no_prompt or p.fs.capturing;
+ const failing_write = p.fs.no_prompt or p.fs.capturing or p.fs.write_waits;
if (failing_write and p.fs.failure_len == 0) {
const kept = if (text.len > p.fs.failure.len) clip(text, p.fs.failure.len - 3) else text;
@memcpy(p.fs.failure[0..kept.len], kept);