Mercurial > vim
comparison src/testdir/test_expand.vim @ 28307:425700af491b v8.2.4679
patch 8.2.4679: cannot have expandcmd() give an error message for mistakes
Commit: https://github.com/vim/vim/commit/2b74b6805b5c8c4836b66df5d949f5ff6a77f8c7
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Sun Apr 3 21:30:32 2022 +0100
patch 8.2.4679: cannot have expandcmd() give an error message for mistakes
Problem: Cannot have expandcmd() give an error message for mistakes.
Solution: Add an optional argument to give errors. Fix memory leak when
expanding files fails. (Yegappan Lakshmanan, closes #10071)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 03 Apr 2022 22:45:04 +0200 |
parents | 2fd2ce8a556c |
children | 2655935b5ccc |
comparison
equal
deleted
inserted
replaced
28306:371e6bb623ad | 28307:425700af491b |
---|---|
88 call assert_equal("grep pat blue\tsky", expandcmd('grep pat <cfile>')) | 88 call assert_equal("grep pat blue\tsky", expandcmd('grep pat <cfile>')) |
89 | 89 |
90 " Test for expression expansion `= | 90 " Test for expression expansion `= |
91 let $FOO= "blue" | 91 let $FOO= "blue" |
92 call assert_equal("blue sky", expandcmd("`=$FOO .. ' sky'`")) | 92 call assert_equal("blue sky", expandcmd("`=$FOO .. ' sky'`")) |
93 let x = expandcmd("`=axbycz`") | |
94 call assert_equal('`=axbycz`', x) | |
95 call assert_fails('let x = expandcmd("`=axbycz`", #{errmsg: 1})', 'E121:') | |
96 let x = expandcmd("`=axbycz`", #{abc: []}) | |
97 call assert_equal('`=axbycz`', x) | |
93 | 98 |
94 " Test for env variable with spaces | 99 " Test for env variable with spaces |
95 let $FOO= "foo bar baz" | 100 let $FOO= "foo bar baz" |
96 call assert_equal("e foo bar baz", expandcmd("e $FOO")) | 101 call assert_equal("e foo bar baz", expandcmd("e $FOO")) |
97 | 102 |
98 if has('unix') | 103 if has('unix') && executable('bash') |
99 " test for using the shell to expand a command argument | 104 " test for using the shell to expand a command argument. |
100 call assert_equal('{1..4}', expandcmd('{1..4}')) | 105 " only bash supports the {..} syntax |
106 set shell=bash | |
107 let x = expandcmd('{1..4}') | |
108 call assert_equal('{1..4}', x) | |
109 call assert_fails("let x = expandcmd('{1..4}', #{errmsg: v:true})", 'E77:') | |
110 let x = expandcmd('{1..4}', #{error: v:true}) | |
111 call assert_equal('{1..4}', x) | |
112 set shell& | |
101 endif | 113 endif |
102 | 114 |
103 unlet $FOO | 115 unlet $FOO |
104 close! | 116 close! |
105 endfunc | 117 endfunc |