aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-04-20 12:32:14 +0200
committerJustin M. Keyes <justinkz@gmail.com>2017-04-20 13:13:39 +0200
commit17052946c744abd53d8f3349f453964ffa818bea (patch)
treeb2f4c05e315408182c99a94b0a8cd34d89a71a94
parenta6f50c1120f4427d1b4f531ac564d83b770fd62f (diff)
downloadrneovim-17052946c744abd53d8f3349f453964ffa818bea.tar.gz
rneovim-17052946c744abd53d8f3349f453964ffa818bea.tar.bz2
rneovim-17052946c744abd53d8f3349f453964ffa818bea.zip
'scrollback': Allow :setlocal -1 on normal buffers
Avoids a spurious :loadview error.
-rw-r--r--src/nvim/option.c2
-rw-r--r--test/functional/terminal/scrollback_spec.lua7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 8748406ba4..ae038389b4 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -4223,7 +4223,7 @@ static char *set_num_option(int opt_idx, char_u *varp, long value,
} else if (pp == &curbuf->b_p_scbk || pp == &p_scbk) {
// 'scrollback'
if (*pp < -1 || *pp > SB_MAX
- || (opt_flags == OPT_LOCAL && !curbuf->terminal)) {
+ || (*pp != -1 && opt_flags == OPT_LOCAL && !curbuf->terminal)) {
errmsg = e_invarg;
*pp = old_value;
} else if (curbuf->terminal) {
diff --git a/test/functional/terminal/scrollback_spec.lua b/test/functional/terminal/scrollback_spec.lua
index 32f25d4086..05f81295c2 100644
--- a/test/functional/terminal/scrollback_spec.lua
+++ b/test/functional/terminal/scrollback_spec.lua
@@ -451,6 +451,13 @@ describe("'scrollback' option", function()
it(':setlocal in a normal buffer is an error', function()
command('new')
+
+ -- :setlocal to -1 is NOT an error.
+ feed_command('setlocal scrollback=-1')
+ eq(nil, string.match(eval("v:errmsg"), "E%d*:"))
+ feed('<CR>')
+
+ -- :setlocal to anything except -1 is an error.
feed_command('setlocal scrollback=42')
feed('<CR>')
eq('E474:', string.match(eval("v:errmsg"), "E%d*:"))