summaryrefslogtreecommitdiffstats
path: root/src/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/screen.c b/src/screen.c
index 628be9a9ed..6c1d6ccef2 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -6651,9 +6651,14 @@ screenalloc(clear)
len = screen_Columns;
else
len = Columns;
- mch_memmove(new_ScreenLines + new_LineOffset[new_row],
- ScreenLines + LineOffset[old_row],
- (size_t)len * sizeof(schar_T));
+#ifdef FEAT_MBYTE
+ /* When switching to utf-8 dont copy characters, they
+ * may be invalid now. */
+ if (!(enc_utf8 && ScreenLinesUC == NULL))
+#endif
+ mch_memmove(new_ScreenLines + new_LineOffset[new_row],
+ ScreenLines + LineOffset[old_row],
+ (size_t)len * sizeof(schar_T));
#ifdef FEAT_MBYTE
if (enc_utf8 && ScreenLinesUC != NULL)
{