From f49f2a1b82cd137657818264ef432a838dd411c3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 9 Nov 2023 09:51:54 +0530 Subject: [PATCH] Fix buf full -> not full reporting --- kitty/vt-parser.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/kitty/vt-parser.c b/kitty/vt-parser.c index 8df4b0c7a..e2ea87947 100644 --- a/kitty/vt-parser.c +++ b/kitty/vt-parser.c @@ -1553,9 +1553,12 @@ search_for_pending_stop(PS *self) { static void do_parse_vt(PS *self) { +#define LOG(prefix) \ + log_error(#prefix " state: %s pos: %zu consumed: %zu sz: %zu %.*s", vte_state_name(self->vte_state), self->read.pos, self->read.consumed, self->read.sz, (int)MIN(64u, (self->read.sz-self->read.pos)), self->buf + self->read.pos); + self->read.consumed = 0; self->pending_mode.draining = false; - /* log_error("pos: %zu consumed: %zu sz: %zu %.*s", self->read.pos, self->read.consumed, self->read.sz, (int)self->read.sz, self->buf); */ + /* LOG(START); */ while (self->read.pos < self->read.sz) { if (self->pending_mode.activated_at) { if ( @@ -1571,7 +1574,8 @@ do_parse_vt(PS *self) { } consume_input(self); } - /* log_error("END: pos: %zu consumed: %zu sz: %zu %.*s", self->read.pos, self->read.consumed, self->read.sz, (int)self->read.sz, self->buf); */ + /* LOG(END); */ +#undef LOG } // }}} @@ -1604,12 +1608,12 @@ run_worker(void *p, ParseData *pd, bool flush) { self->new_input_at = 0; pd->pending_activated_at = self->pending_mode.activated_at; pd->pending_wait_time = self->pending_mode.wait_time; - pd->write_space_created = buf_full && self->read.sz < BUF_SZ; if (self->read.consumed) { self->read.pos -= MIN(self->read.pos, self->read.consumed); self->read.sz -= self->read.consumed; if (self->read.sz) memmove(self->buf, self->buf + self->read.consumed, self->read.sz); self->read.consumed = 0; + pd->write_space_created = buf_full; } } }