From: Yasuhiro Matsumoto Date: Fri, 13 Mar 2026 17:08:17 +0000 (+0000) Subject: patch 9.2.0150: synchronized terminal update may cause display artifacts X-Git-Tag: v9.2.0150^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c8168aa0a2bf026014d7b1b4224887ab9b5c4e6;p=thirdparty%2Fvim.git 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 Signed-off-by: Foxe Chen Signed-off-by: Christian Brabandt --- diff --git a/src/term.c b/src/term.c index e00531d4af..8b557ae992 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 762553cd58..37ef83b978 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, /**/