diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-03-21 14:39:19 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-03-21 14:39:19 +0100 |
commit | 196a1f740981e878091fa124a400d1fc4bfa2bb0 (patch) | |
tree | ce397a8e006aa7d4983ba7f868e5f6331403d5b8 | |
parent | c5cf369e9543ff065e2e1da91da3218c223840e2 (diff) |
patch 8.2.2633: multi-byte 'fillchars' for folding do not show properlyv8.2.2633
Problem: Multi-byte 'fillchars' for folding do not show properly.
Solution: Handle multi-byte characters correctly. (Yegappan Lakshmanan,
closes #7983, closes #7955)
-rw-r--r-- | src/screen.c | 7 | ||||
-rw-r--r-- | src/testdir/test_fold.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/screen.c b/src/screen.c index 84951c5cc6..d219b13c38 100644 --- a/src/screen.c +++ b/src/screen.c @@ -295,8 +295,13 @@ fill_foldcolumn( if (closed) { if (symbol != 0) - // rollback length + { + // rollback length and the character byte_counter -= len; + if (len > 1) + // for a multibyte character, erase all the bytes + vim_memset(p + byte_counter, ' ', len); + } symbol = fill_foldclosed; len = utf_char2bytes(symbol, &p[byte_counter]); byte_counter += len; diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim index d451b1eb49..a032f4536e 100644 --- a/src/testdir/test_fold.vim +++ b/src/testdir/test_fold.vim @@ -1061,6 +1061,12 @@ func Test_foldcolumn_multibyte_char() set fillchars+=foldopen:▾,foldsep:│,foldclose:▸ call s:mbyte_fillchar_tests('▾', '▸', '│') + " Use a mix of multi-byte and single-byte characters + set fillchars+=foldopen:¬,foldsep:\|,foldclose:+ + call s:mbyte_fillchar_tests('¬', '+', '|') + set fillchars+=foldopen:+,foldsep:\|,foldclose:¬ + call s:mbyte_fillchar_tests('+', '¬', '|') + bw! set foldenable& fdc& fdm& fillchars& endfunc diff --git a/src/version.c b/src/version.c index be2c759d99..350f0a1334 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2633, +/**/ 2632, /**/ 2631, |