Commit: patch 9.2.0150: synchronized terminal update may cause display artifacts

1 view
Skip to first unread message

Christian Brabandt

unread,
Mar 13, 2026, 1:17:00 PM (10 days ago) Mar 13
to vim...@googlegroups.com
patch 9.2.0150: synchronized terminal update may cause display artifacts

Commit: https://github.com/vim/vim/commit/7c8168aa0a2bf026014d7b1b4224887ab9b5c4e6
Author: Yasuhiro Matsumoto <matt...@gmail.com>
Date: Fri Mar 13 17:08:17 2026 +0000

patch 9.2.0150: synchronized terminal update may cause display artifacts

Problem: When using synchronized terminal output, the internal
output buffer is not flushed before sending the
End Synchronized Update (ESU) sequence. This causes
redrawing artifacts.
Solution: Call out_flush() immediately before sending the ESU
sequence to ensure all pending drawing commands are
contained within the synchronized update window.
(Yasuhiro Matsumoto)

closes: #19662

Signed-off-by: Yasuhiro Matsumoto <matt...@gmail.com>
Signed-off-by: Foxe Chen <chen...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/term.c b/src/term.c
index e00531d4a..8b557ae99 100644
--- a/src/term.c
+++ b/src/term.c
@@ -8056,6 +8056,11 @@ term_set_sync_output(int flags)
{
if (sync_output_state == 0 || --sync_output_state > 0)
return;
+ // Flush the output buffer before ending the sync batch so that
+ // all drawing output is sent to the terminal within the
+ // BSU..ESU window. Without this, the drawing data remaining in
+ // out_buf would be sent after ESU, outside the sync batch.
+ out_flush();
str = T_ESU;
}
else
diff --git a/src/version.c b/src/version.c
index 762553cd5..37ef83b97 100644
--- a/src/version.c
+++ b/src/version.c
@@ -734,6 +734,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 150,
/**/
149,
/**/
Reply all
Reply to author
Forward
0 new messages