shellescape file path when call "system()"

"system()" called by "get_git_untracked" and "get_hg_untracked" fails
sometimes. It reports error "Can't open file /tmp/***".
The root cause is that the file path for system() contains some unordinary
character and lacks quotes.
This commit is contained in:
hanhuanle 2016-04-27 22:41:47 +08:00
parent 81b58028f0
commit a8dfdd40b7
1 changed files with 2 additions and 2 deletions

View File

@ -73,7 +73,7 @@ function! s:get_git_untracked(file)
if has_key(s:untracked_git, a:file)
let untracked = s:untracked_git[a:file]
else
let output = system('git status --porcelain -- '. a:file)
let output = system('git status --porcelain -- '. shellescape(a:file))
if output[0:1] is# '??' && output[3:-2] is? a:file
let untracked = get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists)
endif
@ -92,7 +92,7 @@ function! s:get_hg_untracked(file)
if has_key(s:untracked_hg, a:file)
let untracked = s:untracked_hg[a:file]
else
let untracked = (system('hg status -u -- '. a:file)[0] is# '?' ?
let untracked = (system('hg status -u -- '. shellescape(a:file))[0] is# '?' ?
\ get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists) : '')
let s:untracked_hg[a:file] = untracked
endif