aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/statusline.c
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2023-12-22 23:31:07 +0100
committerGitHub <noreply@github.com>2023-12-23 06:31:07 +0800
commite632396bab024ffefd1ed65bb4ac0203a9f491ce (patch)
treebd8dda8df9346b2730cd62279cc31535337f9a33 /src/nvim/statusline.c
parent2b0acacb3c2cdd67436846d5117ae323ea7a8fd4 (diff)
downloadrneovim-e632396bab024ffefd1ed65bb4ac0203a9f491ce.tar.gz
rneovim-e632396bab024ffefd1ed65bb4ac0203a9f491ce.tar.bz2
rneovim-e632396bab024ffefd1ed65bb4ac0203a9f491ce.zip
refactor(drawline): avoid storing info to draw 'statuscolumn' (#26712)
We no longer return to the main loop in win_line() to put column characters on the screen. Simplify and sync statuscolumn drawing logic with that of statusline.
Diffstat (limited to 'src/nvim/statusline.c')
-rw-r--r--src/nvim/statusline.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c
index e249317bd3..563e1d0a5b 100644
--- a/src/nvim/statusline.c
+++ b/src/nvim/statusline.c
@@ -867,7 +867,7 @@ void draw_tabline(void)
/// the v:lnum and v:relnum variables don't have to be updated.
///
/// @return The width of the built status column string for line "lnum"
-int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, statuscol_T *stcp)
+int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, char *buf, statuscol_T *stcp)
{
// Only update click definitions once per window per redraw.
// Don't update when current width is 0, since it will be redrawn again if not empty.
@@ -880,7 +880,7 @@ int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, statuscol_T *
StlClickRecord *clickrec;
char *stc = xstrdup(wp->w_p_stc);
- int width = build_stl_str_hl(wp, stcp->text, MAXPATHL, stc, kOptStatuscolumn, OPT_LOCAL, ' ',
+ int width = build_stl_str_hl(wp, buf, MAXPATHL, stc, kOptStatuscolumn, OPT_LOCAL, ' ',
stcp->width, &stcp->hlrec, fillclick ? &clickrec : NULL, stcp);
xfree(stc);
@@ -888,7 +888,7 @@ int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, statuscol_T *
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_size);
- stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, stcp->text, stcp->width, false);
+ stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, buf, stcp->width, false);
}
return width;