aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/option.c33
-rw-r--r--test/functional/options/num_options_spec.lua6
2 files changed, 18 insertions, 21 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 976aadbc9c..637591d7ca 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -4014,22 +4014,19 @@ static char *set_num_option(int opt_idx, char_u *varp, long value,
} else if (pp == &p_wmh) {
if (p_wmh < 0) {
errmsg = e_positive;
- }
- if (p_wmh > p_wh) {
+ } else if (p_wmh > p_wh) {
errmsg = e_winheight;
}
} else if (pp == &p_wiw) {
if (p_wiw < 1) {
errmsg = e_positive;
- }
- if (p_wmw > p_wiw) {
+ } else if (p_wmw > p_wiw) {
errmsg = e_winwidth;
}
} else if (pp == &p_wmw) {
if (p_wmw < 0) {
errmsg = e_positive;
- }
- if (p_wmw > p_wiw) {
+ } else if (p_wmw > p_wiw) {
errmsg = e_winwidth;
}
} else if (pp == &p_mco) {
@@ -4110,16 +4107,16 @@ static char *set_num_option(int opt_idx, char_u *varp, long value,
} else if (curwin->w_p_nuw > 10) {
errmsg = e_invarg;
}
- } else if (pp == &curbuf->b_p_iminsert) {
- if (curbuf->b_p_iminsert < 0 || curbuf->b_p_iminsert > B_IMODE_LAST) {
+ } else if (pp == &curbuf->b_p_iminsert || pp == &p_iminsert) {
+ if (*pp < 0 || *pp > B_IMODE_LAST) {
errmsg = e_invarg;
}
- } else if (pp == &curbuf->b_p_imsearch) {
- if (curbuf->b_p_imsearch < -1 || curbuf->b_p_imsearch > B_IMODE_LAST) {
+ } else if (pp == &curbuf->b_p_imsearch || pp == &p_imsearch) {
+ if (*pp < -1 || *pp > B_IMODE_LAST) {
errmsg = e_invarg;
}
- } else if (pp == &curbuf->b_p_tw) {
- if (curbuf->b_p_tw < 0) {
+ } else if (pp == &curbuf->b_p_tw || pp == &p_tw) {
+ if (*pp < 0) {
errmsg = e_positive;
}
} else if (pp == &curbuf->b_p_scbk || pp == &p_scbk) {
@@ -4127,12 +4124,12 @@ static char *set_num_option(int opt_idx, char_u *varp, long value,
|| (opt_flags == OPT_LOCAL && !curbuf->terminal)) {
errmsg = e_invarg;
}
- } else if (pp == &curbuf->b_p_sw) {
- if (curbuf->b_p_sw < 0) {
+ } else if (pp == &curbuf->b_p_sw || pp == &p_sw) {
+ if (*pp < 0) {
errmsg = e_positive;
}
- } else if (pp == &curbuf->b_p_ts) {
- if (curbuf->b_p_ts <= 0) {
+ } else if (pp == &curbuf->b_p_ts || pp == &p_ts) {
+ if (*pp <= 0) {
errmsg = e_positive;
}
}
@@ -4206,7 +4203,7 @@ static char *set_num_option(int opt_idx, char_u *varp, long value,
} else if (pp == &p_titlelen) {
// if 'titlelen' has changed, redraw the title
if (starting != NO_SCREEN && old_value != p_titlelen) {
- need_maketitle = TRUE;
+ need_maketitle = true;
}
} else if (pp == &p_ch) {
// if p_ch changed value, change the command line height
@@ -4224,7 +4221,7 @@ static char *set_num_option(int opt_idx, char_u *varp, long value,
// sync undo before 'undolevels' changes
// use the old value, otherwise u_sync() may not work properly
*pp = old_value;
- u_sync(TRUE);
+ u_sync(true);
*pp = value;
} else if (pp == &curbuf->b_p_tw) {
FOR_ALL_TAB_WINDOWS(tp, wp) {
diff --git a/test/functional/options/num_options_spec.lua b/test/functional/options/num_options_spec.lua
index c37bbeffc3..9b66d4f862 100644
--- a/test/functional/options/num_options_spec.lua
+++ b/test/functional/options/num_options_spec.lua
@@ -11,10 +11,10 @@ end
local function should_fail(opt, value, errmsg)
execute('let v:errmsg = ""')
execute('setglobal ' .. opt .. '=' .. value)
- eq(errmsg, eval("v:errmsg"):match("E%d*:"))
+ eq(errmsg, eval("v:errmsg"):match("E%d*"))
execute('let v:errmsg = ""')
execute('setlocal ' .. opt .. '=' .. value)
- eq(errmsg, eval("v:errmsg"):match("E%d*:"))
+ eq(errmsg, eval("v:errmsg"):match("E%d*"))
execute('let v:errmsg = ""')
end
@@ -37,6 +37,6 @@ describe(':set validation', function()
it('setlocal and setglobal validate values', function()
should_fail('shiftwidth', -10, 'E487')
should_fail('tabstop', -10, 'E487')
- should_fail('winheight', -10, 'E487')
+ should_fail('winheight', -10, 'E591')
end)
end)