#540 Fix shell escaping pretty much everywhere

This commit is contained in:
w0rp
2017-05-08 22:59:25 +01:00
parent 28c6ec9cad
commit 6ea00af689
37 changed files with 85 additions and 87 deletions

View File

@@ -480,14 +480,14 @@ function! ale#engine#FormatCommand(buffer, command) abort
" file.
if l:command =~# '%s'
let l:filename = fnamemodify(bufname(a:buffer), ':p')
let l:command = substitute(l:command, '%s', '\=fnameescape(l:filename)', 'g')
let l:command = substitute(l:command, '%s', '\=shellescape(l:filename)', 'g')
endif
if l:command =~# '%t'
" Create a temporary filename, <temp_dir>/<original_basename>
" The file itself will not be created by this function.
let l:temporary_file = s:TemporaryFilename(a:buffer)
let l:command = substitute(l:command, '%t', '\=fnameescape(l:temporary_file)', 'g')
let l:command = substitute(l:command, '%t', '\=shellescape(l:temporary_file)', 'g')
endif
" Finish formatting so %% becomes %.
@@ -529,7 +529,7 @@ function! s:RunJob(options) abort
" in the shell. We'll write out the file to a temporary file,
" and then read it back in, in the shell.
let l:temporary_file = s:TemporaryFilename(l:buffer)
let l:command = l:command . ' < ' . fnameescape(l:temporary_file)
let l:command = l:command . ' < ' . shellescape(l:temporary_file)
endif
if s:CreateTemporaryFileForJob(l:buffer, l:temporary_file)

View File

@@ -47,7 +47,7 @@ endfunction
" Output 'cd <directory> && '
" This function can be used changing the directory for a linter command.
function! ale#path#CdString(directory) abort
return 'cd ' . fnameescape(a:directory) . ' && '
return 'cd ' . shellescape(a:directory) . ' && '
endfunction
" Output 'cd <buffer_filename_directory> && '