diff options
author | luukvbaal <luukvbaal@gmail.com> | 2024-01-05 14:34:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-05 21:34:54 +0800 |
commit | c509f4907bf7405c9c2ae3f7eff76c5d552944cc (patch) | |
tree | 02c55ab90b937df32ac0b9ce9baaf86fb15c0f89 | |
parent | e09adfdcffe8a94e09d834bb49f42fd725ddd47b (diff) | |
download | rneovim-c509f4907bf7405c9c2ae3f7eff76c5d552944cc.tar.gz rneovim-c509f4907bf7405c9c2ae3f7eff76c5d552944cc.tar.bz2 rneovim-c509f4907bf7405c9c2ae3f7eff76c5d552944cc.zip |
fix(column): fill 'statuscolumn' clickdefs with evaluated width (#26891)
-rw-r--r-- | src/nvim/statusline.c | 4 | ||||
-rw-r--r-- | test/functional/ui/statuscolumn_spec.lua | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index 1f00b406ec..2a5514b56e 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -884,9 +884,9 @@ int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, char *buf, st if (fillclick) { stl_clear_click_defs(wp->w_statuscol_click_defs, wp->w_statuscol_click_defs_size); - wp->w_statuscol_click_defs = stl_alloc_click_defs(wp->w_statuscol_click_defs, stcp->width, + wp->w_statuscol_click_defs = stl_alloc_click_defs(wp->w_statuscol_click_defs, width, &wp->w_statuscol_click_defs_size); - stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, buf, stcp->width, false); + stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, buf, width, false); } return width; diff --git a/test/functional/ui/statuscolumn_spec.lua b/test/functional/ui/statuscolumn_spec.lua index 47a68c368e..a27524c9f2 100644 --- a/test/functional/ui/statuscolumn_spec.lua +++ b/test/functional/ui/statuscolumn_spec.lua @@ -77,6 +77,18 @@ describe('statuscolumn', function() 1 aaaaa | | ]]) + -- Doesn't crash when trying to fill click defs that do not fit (#26845) + command('norm gg') + command([=[ + set stc=%@Click@%{v:relnum?v:relnum:(v:lnum==5?'bbbbb':v:lnum)}%T + norm 5Gzt | redraw! + ]=]) + screen:expect([[ + bbbbba^eaaa | + 1 aaaaa | + 2 aaaaa | + | + ]]) end) it("works with 'number' and 'relativenumber'", function() |