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:
parent
81b58028f0
commit
a8dfdd40b7
|
@ -73,7 +73,7 @@ function! s:get_git_untracked(file)
|
||||||
if has_key(s:untracked_git, a:file)
|
if has_key(s:untracked_git, a:file)
|
||||||
let untracked = s:untracked_git[a:file]
|
let untracked = s:untracked_git[a:file]
|
||||||
else
|
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
|
if output[0:1] is# '??' && output[3:-2] is? a:file
|
||||||
let untracked = get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists)
|
let untracked = get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists)
|
||||||
endif
|
endif
|
||||||
|
@ -92,7 +92,7 @@ function! s:get_hg_untracked(file)
|
||||||
if has_key(s:untracked_hg, a:file)
|
if has_key(s:untracked_hg, a:file)
|
||||||
let untracked = s:untracked_hg[a:file]
|
let untracked = s:untracked_hg[a:file]
|
||||||
else
|
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) : '')
|
\ get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists) : '')
|
||||||
let s:untracked_hg[a:file] = untracked
|
let s:untracked_hg[a:file] = untracked
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in New Issue