commit 0fd59f0121bbf8906203689c790eeba6f501600e
parent 443bbfd59e2818aeee72d2ed77af1cb24617e46f
Author: luukvbaal <31730729+luukvbaal@users.noreply.github.com>
Date: Thu, 12 Jan 2023 16:04:43 +0100
fix(statuscolumn): foldcolumn buffer is too small (#21761)
Resolve https://github.com/neovim/neovim/issues/21759.
Diffstat:
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h
@@ -1426,7 +1426,7 @@ struct statuscol {
int sign_attr[SIGN_SHOW_MAX + 1]; ///< attributes used for signs
int truncate; ///< truncated width
bool draw; ///< draw statuscolumn or not
- char fold_text[10]; ///< text in fold column (%C)
+ char fold_text[9 * 4 + 1]; ///< text in fold column (%C)
char *sign_text[SIGN_SHOW_MAX + 1]; ///< text in sign column (%s)
char text[MAXPATHL]; ///< text in status column
char *textp; ///< current position in text
diff --git a/test/functional/ui/statuscolumn_spec.lua b/test/functional/ui/statuscolumn_spec.lua
@@ -367,4 +367,26 @@ describe('statuscolumn', function()
meths.input_mouse('right', 'press', '', 0, 3, 0)
eq('0 4 r 7', eval("g:testvar"))
end)
+
+ it('fits maximum multibyte foldcolumn #21759', function()
+ command('set stc=%C fdc=9 fillchars=foldsep:ð’€€')
+ for _ = 0,8 do command('norm zfjzo') end
+ screen:expect([[
+ aaaaa |
+ aaaaa |
+ aaaaa |
+ aaaaa |
+ --------- ^aaaaa |
+ 𒀀𒀀𒀀𒀀𒀀𒀀𒀀𒀀𒀀 aaaaa |
+ aaaaa |
+ aaaaa |
+ aaaaa |
+ aaaaa |
+ aaaaa |
+ aaaaa |
+ aaaaa |
+ |
+ ]])
+ end)
+
end)