Problem: Using a multibyte fill character whose lower byte is zero, such
as U+2500 for a popup border or 'fillchars', stores a NUL in
ScreenLines[]. That marks the cell as the right half of a
double-width character, and the GUI reports E340 when the window
is resized (iranoan).
Solution: Store 0x80 instead of the truncated character code, like
fold_line() already does (Hirohito Higashi)
related: vim-jp/issues#1460
closes: #20960
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
{
ScreenLinesUC[off_to] = c;
ScreenLinesC[0][off_to] = 0;
+ ScreenLines[off_to] = 0x80; // avoid storing zero
}
else
ScreenLinesUC[off_to] = 0;
{
ScreenLinesUC[off] = c;
ScreenLinesC[0][off] = 0;
+ ScreenLines[off] = 0x80; // avoid storing zero
}
else
ScreenLinesUC[off] = 0;
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 918,
/**/
917,
/**/