Mercurial > vim
comparison src/testdir/test_evalcmd.vim @ 9436:f048e5a27253 v7.4.1999
commit https://github.com/vim/vim/commit/bc5d6dd1dd1dc3a06e4e655fc9479529db288365
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jul 7 23:04:18 2016 +0200
patch 7.4.1999
Problem: evalcmd() doesn't work recursively.
Solution: Use redir_evalcmd instead of redir_vname.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 07 Jul 2016 23:15:05 +0200 |
parents | e70fd2eb3ae1 |
children |
comparison
equal
deleted
inserted
replaced
9435:eb1692f10ce6 | 9436:f048e5a27253 |
---|---|
1 " test evalcmd() | 1 " test evalcmd() |
2 | |
3 func NestedEval() | |
4 let nested = evalcmd('echo "nested\nlines"') | |
5 echo 'got: "' . nested . '"' | |
6 endfunc | |
7 | |
8 func NestedRedir() | |
9 redir => var | |
10 echo 'broken' | |
11 redir END | |
12 endfunc | |
2 | 13 |
3 func Test_evalcmd() | 14 func Test_evalcmd() |
4 call assert_equal("\nnocompatible", evalcmd('set compatible?')) | 15 call assert_equal("\nnocompatible", evalcmd('set compatible?')) |
5 call assert_equal("\nsomething\nnice", evalcmd('echo "something\nnice"')) | 16 call assert_equal("\nsomething\nnice", evalcmd('echo "something\nnice"')) |
17 call assert_equal("noendofline", evalcmd('echon "noendofline"')) | |
18 call assert_equal("", evalcmd(123)) | |
19 | |
20 call assert_equal("\ngot: \"\nnested\nlines\"", evalcmd('call NestedEval()')) | |
21 redir => redired | |
22 echo 'this' | |
23 let evaled = evalcmd('echo "that"') | |
24 echo 'theend' | |
25 redir END | |
26 call assert_equal("\nthis\ntheend", redired) | |
27 call assert_equal("\nthat", evaled) | |
28 | |
6 call assert_fails('call evalcmd("doesnotexist")', 'E492:') | 29 call assert_fails('call evalcmd("doesnotexist")', 'E492:') |
30 call assert_fails('call evalcmd(3.4)', 'E806:') | |
31 call assert_fails('call evalcmd("call NestedRedir()")', 'E930:') | |
7 endfunc | 32 endfunc |
8 | 33 |