diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2024-04-14 05:03:49 +0800 |
|---|---|---|
| committer | zeertzjq <zeertzjq@outlook.com> | 2024-04-14 05:06:50 +0800 |
| commit | e81fe387d6291e5643a97a61e6d05b48aaeab2a1 (patch) | |
| tree | ff7a5e6193170512cbbe385866239d901dc5ac40 /test | |
| parent | 617a3851426434bc22d82fe7574ba8f0455c0dcd (diff) | |
| download | rneovim-e81fe387d6291e5643a97a61e6d05b48aaeab2a1.tar.gz rneovim-e81fe387d6291e5643a97a61e6d05b48aaeab2a1.tar.bz2 rneovim-e81fe387d6291e5643a97a61e6d05b48aaeab2a1.zip | |
vim-patch:9.1.0313: Crash when using heredoc with comment in command block
Problem: Crash when using heredoc with comment in command block.
Solution: Handle a newline more like the end of the line, fix coverity
warning (zeertzjq).
closes: vim/vim#14535
https://github.com/vim/vim/commit/1f5175d9af3d3f37e19f23e0e6f84caec47390f2
Diffstat (limited to 'test')
| -rw-r--r-- | test/old/testdir/test_let.vim | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/test/old/testdir/test_let.vim b/test/old/testdir/test_let.vim index 56b880f3b0..da4334833b 100644 --- a/test/old/testdir/test_let.vim +++ b/test/old/testdir/test_let.vim @@ -542,6 +542,13 @@ END XX call assert_equal(['Line1'], var1) + let var1 =<< trim XX " comment + Line1 + Line2 + Line3 + XX + call assert_equal(['Line1', ' Line2', 'Line3'], var1) + " ignore "endfunc" let var1 =<< END something @@ -714,15 +721,27 @@ END call CheckScriptFailure(lines, 'E15:') " Test for using heredoc in a single string using execute() - call assert_equal(["['one', 'two']"], - \ execute("let x =<< trim END\n one\n two\nEND\necho x")->split("\n")) - call assert_equal(["[' one', ' two']"], - \ execute("let x =<< END\n one\n two\nEND\necho x")->split("\n")) + call assert_equal("\n['one', 'two']", + \ execute("let x =<< trim END\n one\n two\nEND\necho x")) + call assert_equal("\n['one', ' two']", + \ execute("let x =<< trim END\n one\n two\nEND\necho x")) + call assert_equal("\n['one', 'two']", + \ execute(" let x =<< trim END\n one\n two\n END\necho x")) + call assert_equal("\n['one', ' two']", + \ execute(" let x =<< trim END\n one\n two\n END\necho x")) + call assert_equal("\n[' one', ' two']", + \ execute("let x =<< END\n one\n two\nEND\necho x")) + call assert_equal("\n['one', 'two']", + \ execute("let x =<< END\none\ntwo\nEND\necho x")) + call assert_equal("\n['one', 'two']", + \ execute("let x =<< END \" comment\none\ntwo\nEND\necho x")) let cmd = 'execute("let x =<< END\n one\n two\necho x")' call assert_fails(cmd, "E990: Missing end marker 'END'") let cmd = 'execute("let x =<<\n one\n two\necho x")' - call assert_fails(cmd, "E990: Missing end marker ''") + call assert_fails(cmd, "E172: Missing marker") let cmd = 'execute("let x =<< trim\n one\n two\necho x")' + call assert_fails(cmd, "E172: Missing marker") + let cmd = 'execute("let x =<< end\n one\n two\nend\necho x")' call assert_fails(cmd, "E221: Marker cannot start with lower case letter") let cmd = 'execute("let x =<< eval END\n one\n two{y}\nEND\necho x")' call assert_fails(cmd, 'E121: Undefined variable: y') |