mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 9.0.0845: shell command with just space gives strange error
Problem: Shell command with just space gives strange error. Solution: Skip white space at start of the argument. (Christian Brabandt, Shane-XB-Qian, closes #11515, closes #11495)
This commit is contained in:
parent
7b224fdf4a
commit
4e7590ec00
@ -899,11 +899,13 @@ do_bang(
|
||||
}
|
||||
|
||||
/*
|
||||
* Try to find an embedded bang, like in :!<cmd> ! [args]
|
||||
* (:!! is indicated by the 'forceit' variable)
|
||||
* Try to find an embedded bang, like in ":!<cmd> ! [args]"
|
||||
* ":!!" is indicated by the 'forceit' variable.
|
||||
*/
|
||||
ins_prevcmd = forceit;
|
||||
trailarg = arg;
|
||||
|
||||
// Skip leading white space to avoid a strange error with some shells.
|
||||
trailarg = skipwhite(arg);
|
||||
do
|
||||
{
|
||||
len = (int)STRLEN(trailarg) + 1;
|
||||
|
@ -1653,6 +1653,53 @@ func Test_cmd_bang_E135()
|
||||
%bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_cmd_bang_args()
|
||||
new
|
||||
:.!
|
||||
call assert_equal(0, v:shell_error)
|
||||
|
||||
" Note that below there is one space char after the '!'. This caused a
|
||||
" shell error in the past, see https://github.com/vim/vim/issues/11495.
|
||||
:.!
|
||||
call assert_equal(0, v:shell_error)
|
||||
bwipe!
|
||||
|
||||
CheckUnix
|
||||
:.!pwd
|
||||
call assert_equal(0, v:shell_error)
|
||||
:.! pwd
|
||||
call assert_equal(0, v:shell_error)
|
||||
|
||||
" Note there is one space after 'pwd'.
|
||||
:.! pwd
|
||||
call assert_equal(0, v:shell_error)
|
||||
|
||||
" Note there are two spaces after 'pwd'.
|
||||
:.! pwd
|
||||
call assert_equal(0, v:shell_error)
|
||||
:.!ls ~
|
||||
call assert_equal(0, v:shell_error)
|
||||
|
||||
" Note there is one space char after '~'.
|
||||
:.!ls ~
|
||||
call assert_equal(0, v:shell_error)
|
||||
|
||||
" Note there are two spaces after '~'.
|
||||
:.!ls ~
|
||||
call assert_equal(0, v:shell_error)
|
||||
|
||||
:.!echo "foo"
|
||||
call assert_equal(getline('.'), "foo")
|
||||
:.!echo "foo "
|
||||
call assert_equal(getline('.'), "foo ")
|
||||
:.!echo " foo "
|
||||
call assert_equal(getline('.'), " foo ")
|
||||
:.!echo " foo "
|
||||
call assert_equal(getline('.'), " foo ")
|
||||
|
||||
%bwipe!
|
||||
endfunc
|
||||
|
||||
" Test for using ~ for home directory in cmdline completion matches
|
||||
func Test_cmdline_expand_home()
|
||||
call mkdir('Xexpdir', 'R')
|
||||
|
@ -695,6 +695,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
845,
|
||||
/**/
|
||||
844,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user