diff options
-rw-r--r-- | src/nvim/buffer_defs.h | 2 | ||||
-rw-r--r-- | test/functional/ui/statuscolumn_spec.lua | 22 |
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) |