diff options
-rw-r--r-- | src/nvim/drawline.c | 6 | ||||
-rw-r--r-- | src/nvim/option.c | 3 | ||||
-rw-r--r-- | src/nvim/statusline.c | 11 |
3 files changed, 6 insertions, 14 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c index a74a5670d1..3cedb04bcb 100644 --- a/src/nvim/drawline.c +++ b/src/nvim/drawline.c @@ -415,14 +415,12 @@ static void get_statuscol_str(win_T *wp, linenr_T lnum, int virtnum, statuscol_T if (wp->w_statuscol_line_count != wp->w_nrwidth_line_count) { wp->w_statuscol_line_count = wp->w_nrwidth_line_count; set_vim_var_nr(VV_VIRTNUM, 0); - build_statuscol_str(wp, wp->w_nrwidth_line_count, 0, stcp->width, - ' ', stcp->text, &stcp->hlrec, stcp); + build_statuscol_str(wp, wp->w_nrwidth_line_count, 0, stcp); stcp->width += stcp->truncate; } set_vim_var_nr(VV_VIRTNUM, virtnum); - int width = build_statuscol_str(wp, lnum, relnum, stcp->width, - ' ', stcp->text, &stcp->hlrec, stcp); + int width = build_statuscol_str(wp, lnum, relnum, stcp); // Force a redraw in case of error or when truncated if (*wp->w_p_stc == NUL || (stcp->truncate > 0 && wp->w_nrwidth < MAX_NUMBERWIDTH)) { if (stcp->truncate) { // Avoid truncating 'statuscolumn' diff --git a/src/nvim/option.c b/src/nvim/option.c index 1d7747de0b..069304d9e1 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -2178,9 +2178,6 @@ static char *set_bool_option(const int opt_idx, char *const varp, const int valu if (curwin->w_p_spell) { errmsg = did_set_spelllang(curwin); } - } else if (((int *)varp == &curwin->w_p_nu || (int *)varp == &curwin->w_p_rnu) - && *curwin->w_p_stc != NUL) { // '(relative)number' + 'statuscolumn' - curwin->w_nrwidth_line_count = 0; } if ((int *)varp == &curwin->w_p_arab) { diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index 9294bef6c2..ebaa14c604 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -874,11 +874,8 @@ void draw_tabline(void) /// Build the 'statuscolumn' string for line "lnum". When "relnum" == -1, /// the v:lnum and v:relnum variables don't have to be updated. /// -/// @param hlrec HL attributes (can be NULL) -/// @param stcp Status column attributes (can be NULL) /// @return The width of the built status column string for line "lnum" -int build_statuscol_str(win_T *wp, linenr_T lnum, long relnum, int maxwidth, int fillchar, - char *buf, stl_hlrec_t **hlrec, statuscol_T *stcp) +int build_statuscol_str(win_T *wp, linenr_T lnum, long relnum, statuscol_T *stcp) { bool fillclick = relnum >= 0 && lnum == wp->w_topline; @@ -889,8 +886,8 @@ int build_statuscol_str(win_T *wp, linenr_T lnum, long relnum, int maxwidth, int StlClickRecord *clickrec; char *stc = xstrdup(wp->w_p_stc); - int width = build_stl_str_hl(wp, buf, MAXPATHL, stc, "statuscolumn", OPT_LOCAL, fillchar, - maxwidth, hlrec, fillclick ? &clickrec : NULL, stcp); + int width = build_stl_str_hl(wp, stcp->text, MAXPATHL, stc, "statuscolumn", OPT_LOCAL, ' ', + stcp->width, &stcp->hlrec, fillclick ? &clickrec : NULL, stcp); xfree(stc); // Only update click definitions once per window per redraw @@ -898,7 +895,7 @@ int build_statuscol_str(win_T *wp, linenr_T lnum, long relnum, int maxwidth, int 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, width, &wp->w_statuscol_click_defs_size); - stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, buf, width, false); + stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, stcp->text, width, false); } return width; |