diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-08-07 21:58:54 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-08-14 18:20:29 -0400 |
commit | bc2c75cbd7860b1f1a0246fc9b11b0d68132a786 (patch) | |
tree | fdc38b715969e65a5c782825dfc06b60518a79e7 | |
parent | afa5b04d00856377f6ddd201ff972c74d559ade4 (diff) | |
download | rneovim-bc2c75cbd7860b1f1a0246fc9b11b0d68132a786.tar.gz rneovim-bc2c75cbd7860b1f1a0246fc9b11b0d68132a786.tar.bz2 rneovim-bc2c75cbd7860b1f1a0246fc9b11b0d68132a786.zip |
vim-patch:8.2.1379: curly braces expression ending in " }" does not work
Problem: Curly braces expression ending in " }" does not work.
Solution: Skip over white space when checking for "}". (closes vim/vim#6634)
https://github.com/vim/vim/commit/ae95a3946b012d4e68bcb20b28f691f6d3b9caaf
-rw-r--r-- | src/nvim/eval.c | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_eval_stuff.vim | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 3ab50878a8..b37fd85659 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -5365,7 +5365,7 @@ static int dict_get_tv(char_u **arg, typval_T *rettv, int evaluate) if (eval1(&start, &tv, false) == FAIL) { // recursive! return FAIL; } - if (*start == '}') { + if (*skipwhite(start) == '}') { return NOTDONE; } } diff --git a/src/nvim/testdir/test_eval_stuff.vim b/src/nvim/testdir/test_eval_stuff.vim index 4b54a0d39f..061364fb73 100644 --- a/src/nvim/testdir/test_eval_stuff.vim +++ b/src/nvim/testdir/test_eval_stuff.vim @@ -108,3 +108,27 @@ func Test_skip_after_throw() catch /something/ endtry endfunc + +func Test_curly_assignment() + let s:svar = 'svar' + let g:gvar = 'gvar' + let lname = 'gvar' + let gname = 'gvar' + let {'s:'.lname} = {'g:'.gname} + call assert_equal('gvar', s:gvar) + let s:gvar = '' + let { 's:'.lname } = { 'g:'.gname } + call assert_equal('gvar', s:gvar) + let s:gvar = '' + let { 's:' . lname } = { 'g:' . gname } + call assert_equal('gvar', s:gvar) + let s:gvar = '' + let { 's:' .. lname } = { 'g:' .. gname } + call assert_equal('gvar', s:gvar) + + unlet s:svar + unlet s:gvar + unlet g:gvar +endfunc + +" vim: shiftwidth=2 sts=2 expandtab |