summaryrefslogtreecommitdiff
path: root/src/Messages.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Messages.zig')
-rw-r--r--src/Messages.zig5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Messages.zig b/src/Messages.zig
index 7970908e..d8aeea0c 100644
--- a/src/Messages.zig
+++ b/src/Messages.zig
@@ -487,7 +487,8 @@ pub fn clip(text: []const u8, max: usize) []const u8 {
pub fn reportFailure(p: *Pardes, id: usize, text: []const u8) void {
// A builtin a ctl write runs: its first error is also the write's, cut
// between words.
- if (p.fs.no_prompt and p.fs.failure_len == 0) {
+ const failing_write = p.fs.no_prompt or p.fs.capturing;
+ 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);
var n = kept.len;
@@ -500,7 +501,7 @@ pub fn reportFailure(p: *Pardes, id: usize, text: []const u8) void {
// The write fails with it, and its err record says it: no msg for it,
// and no Verbose announcement before that, so the same failure again is
// the same record again, counted (events.pushCounting).
- if (p.fs.no_prompt) {
+ if (failing_write) {
const serial: u32 = if (p.fs.session_write) 0 else if (id < MAX_PANES) if (p.panes[id]) |pane| pane.serial else 0 else 0;
ctlfs.events.dropAnnouncement(p, serial, text);
p.fs.unlogged = true;