diff options
Diffstat (limited to 'src/screen.c')
-rw-r--r-- | src/screen.c | 11 |
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) { |