# HG changeset patch # User Christian Brabandt # Date 1490813105 -7200 # Node ID f26a535d9464825564a396fbdbbf4cbb59dab84b # Parent 98f84fe8eb77d98c81dbd05a31174c3794ecd7fc patch 8.0.0524: folds messed up commit https://github.com/vim/vim/commit/8da1e6cedf839902e15987a98733ebd31b5f1b81 Author: Bram Moolenaar Date: Wed Mar 29 20:38:59 2017 +0200 patch 8.0.0524: folds messed up Problem: Folds are messed up when 'encodin' is "utf-8". Solution: Also set the fold character when it's not multi-byte. diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -2700,7 +2700,10 @@ fold_line( ScreenLines[off + col] = 0x80; /* avoid storing zero */ } else + { ScreenLinesUC[off + col] = 0; + ScreenLines[off + col] = fill_fold; + } col++; } else diff --git a/src/testdir/test_display.vim b/src/testdir/test_display.vim --- a/src/testdir/test_display.vim +++ b/src/testdir/test_display.vim @@ -54,6 +54,16 @@ func! Test_display_foldtext_mbyte() \ " 14 \u2502", \ ] call assert_equal(expect, lines) + + set fillchars=fold:-,vert:\| + let lines=ScreenLines([1,3], winwidth(0)+1) + let expect=[ + \ " 1 |", + \ "+ +-- 12 lines: 2". repeat("-", 23). "|", + \ " 14 |", + \ ] + call assert_equal(expect, lines) + set foldtext& fillchars& foldmethod& fdc& bw! endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 524, +/**/ 523, /**/ 522,