aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/buffer_defs.h2
-rw-r--r--test/functional/ui/statuscolumn_spec.lua22
2 files changed, 23 insertions, 1 deletions
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h
index c794b88229..f01edd1ad2 100644
--- 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
index ca7d8af7f4..2905f1d64c 100644
--- 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)