mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-03 01:53:30 +08:00
#540 Fix shell escaping pretty much everywhere
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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> && '
|
||||
|
||||
Reference in New Issue
Block a user