diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2016-04-20 13:44:12 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2016-04-21 18:11:06 +0200 |
commit | ce17d031805ab548f26f5b2d519fb8e3bf1bbff1 (patch) | |
tree | 24afb43c916063c690d7a8f5fb319cac407aeb01 /test/functional/legacy/eval_spec.lua | |
parent | a7a0bf54e3f339f7bf1f97dee44546cdcd926b1d (diff) | |
download | rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.tar.gz rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.tar.bz2 rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.zip |
eval: let getreg() return valid list for an undefined register
vim-patch:7.4.1755
this prevents a crash when the list is used in setreg() later
Diffstat (limited to 'test/functional/legacy/eval_spec.lua')
-rw-r--r-- | test/functional/legacy/eval_spec.lua | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/functional/legacy/eval_spec.lua b/test/functional/legacy/eval_spec.lua index d1ed96cc2e..3ff1092a4b 100644 --- a/test/functional/legacy/eval_spec.lua +++ b/test/functional/legacy/eval_spec.lua @@ -495,6 +495,28 @@ describe('eval', function() ' abcE4b10-4\000abcE4b10-4-2') end) + it('getreg("a",1,1) returns a valid list when "a is unset', function() + -- Precondition: "a is actually unset and "0 is nonempty + eq('', eval("getregtype('a')")) + eq('', eval("getreg('a')")) + execute("call setreg('0','text')") + + -- This used to return a NULL list + -- which setreg didn't handle + execute("let x = getreg('a',1,1)") + execute("call setreg('0',x)") + + -- nvim didn't crash and "0 was emptied + eq(2, eval("1+1")) + eq({}, eval("getreg('0',1,1)")) + + -- x is a mutable list + execute("let y = x") + eq({}, eval("y")) + execute("call add(x, 'item')") + eq({'item'}, eval("y")) + end) + it('search and expressions', function() execute('so test_eval_setup.vim') execute([=[call SetReg('/', ['abc/'])]=]) |