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 <mattn.jp@gmail.com>
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yasuhiro Matsumoto
2026-03-13 17:08:17 +00:00
committed by Christian Brabandt
parent 3697153993
commit 7c8168aa0a
2 changed files with 7 additions and 0 deletions
+5
View File
@@ -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
+2
View File
@@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
150,
/**/
149,
/**/