diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2018-09-13 01:52:31 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-09-13 07:52:31 +0200 |
commit | ea5337d9b5933680329e59d61d0808378574c256 (patch) | |
tree | 4e6ec150399abf66a951ddd2c98e4df1344a0d13 /src | |
parent | d5702a45346a738c4f684e790a3fcdb838dd24af (diff) | |
download | rneovim-ea5337d9b5933680329e59d61d0808378574c256.tar.gz rneovim-ea5337d9b5933680329e59d61d0808378574c256.tar.bz2 rneovim-ea5337d9b5933680329e59d61d0808378574c256.zip |
vim-patch:8.0.1172: when E734 is given option is still set (#8988)
Problem: When E734 is given option is still set.
Solution: Assign NULL to "s". (Christian Brabandt)
https://github.com/vim/vim/commit/2a6a6c3014e728cd01c750b0f60484d4eaf22a8c
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_assign.vim | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index b7f5d93bf3..0b81e10bd9 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -1912,6 +1912,7 @@ static char_u *ex_let_one(char_u *arg, typval_T *const tv, if ((opt_type == 1 && *op == '.') || (opt_type == 0 && *op != '.')) { EMSG2(_(e_letwrong), op); + s = NULL; // don't set the value } else { if (opt_type == 1) { // number if (*op == '+') { diff --git a/src/nvim/testdir/test_assign.vim b/src/nvim/testdir/test_assign.vim index a75e89d5dd..50415ad6fd 100644 --- a/src/nvim/testdir/test_assign.vim +++ b/src/nvim/testdir/test_assign.vim @@ -31,3 +31,17 @@ func Test_let_termcap() let &t_xx = "" call assert_fails('let x = &t_xx', 'E15') endfunc + +func Test_let_option_error() + let _w = &tw + let &tw = 80 + call assert_fails('let &tw .= 1', 'E734') + call assert_equal(80, &tw) + let &tw = _w + + let _w = &fillchars + let &fillchars = "vert:|" + call assert_fails('let &fillchars += "diff:-"', 'E734') + call assert_equal("vert:|", &fillchars) + let &fillchars = _w +endfunc |