aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/statusline.c14
-rw-r--r--test/functional/ui/statuscolumn_spec.lua9
2 files changed, 20 insertions, 3 deletions
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c
index 6857bef810..7647c1fcfb 100644
--- a/src/nvim/statusline.c
+++ b/src/nvim/statusline.c
@@ -1502,8 +1502,14 @@ int build_stl_str_hl(win_T *wp, char *out, size_t outlen, char *fmt, char *opt_n
case STL_LINE:
// Overload %l with v:lnum for 'statuscolumn'
- num = opt_name != NULL && strcmp(opt_name, "statuscolumn") == 0 ? get_vim_var_nr(VV_LNUM)
- : (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) ? 0L : (long)(wp->w_cursor.lnum);
+ if (opt_name != NULL && strcmp(opt_name, "statuscolumn") == 0) {
+ if (wp->w_p_nu) {
+ num = get_vim_var_nr(VV_LNUM);
+ }
+ } else {
+ num = (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) ? 0L : (long)(wp->w_cursor.lnum);
+ }
+
break;
case STL_NUMLINES:
@@ -1603,7 +1609,9 @@ int build_stl_str_hl(win_T *wp, char *out, size_t outlen, char *fmt, char *opt_n
case STL_ROFLAG_ALT:
// Overload %r with v:relnum for 'statuscolumn'
if (opt_name != NULL && strcmp(opt_name, "statuscolumn") == 0) {
- num = get_vim_var_nr(VV_RELNUM);
+ if (wp->w_p_rnu) {
+ num = get_vim_var_nr(VV_RELNUM);
+ }
} else {
itemisflag = true;
if (wp->w_buffer->b_p_ro) {
diff --git a/test/functional/ui/statuscolumn_spec.lua b/test/functional/ui/statuscolumn_spec.lua
index 74e6d61ff3..a9d796c10b 100644
--- a/test/functional/ui/statuscolumn_spec.lua
+++ b/test/functional/ui/statuscolumn_spec.lua
@@ -77,6 +77,9 @@ describe('statuscolumn', function()
16│aaaaa |
|
]])
+ command([[set stc=%l%=%{&rnu?'\ ':''}%r│]])
+ screen:expect_unchanged()
+ command([[set stc=%{&nu?v:lnum:''}%=%{&rnu?'\ '.v:relnum:''}│]])
command('set relativenumber')
screen:expect([[
4 4│aaaaa |
@@ -94,6 +97,9 @@ describe('statuscolumn', function()
16 8│aaaaa |
|
]])
+ command([[set stc=%l%=%{&rnu?'\ ':''}%r│]])
+ screen:expect_unchanged()
+ command([[set stc=%{&nu?v:lnum:''}%=%{&rnu?'\ '.v:relnum:''}│]])
command('norm 12GH')
screen:expect([[
4 0│^aaaaa |
@@ -111,6 +117,9 @@ describe('statuscolumn', function()
16 12│aaaaa |
|
]])
+ command([[set stc=%l%=%{&rnu?'\ ':''}%r│]])
+ screen:expect_unchanged()
+ command([[set stc=%{&nu?v:lnum:''}%=%{&rnu?'\ '.v:relnum:''}│]])
end)
it('works with highlighted \'statuscolumn\'', function()