# HG changeset patch # User namark # Date 1449081912 -14400 # Node ID 47209552ec469329456ef44431d08b034f2d86cd # Parent a9136d95cf47d77c18776c613ba66043dae50583 Shellescaped all command arguments in HgRepo.GetCommand, so that the commands work properly with ugly file names, in my case containing parentheses. Wrapping revision arguments in quotes is no longer necessary, so removed all of that as well. diff -r a9136d95cf47 -r 47209552ec46 plugin/lawrencium.vim --- a/plugin/lawrencium.vim Tue Oct 06 23:13:43 2015 -0700 +++ b/plugin/lawrencium.vim Wed Dec 02 22:45:12 2015 +0400 @@ -61,11 +61,6 @@ return fnamemodify(a:path, ':s?[/\\]$??') endfunction -" Surrounds the given string with double quotes. -function! s:addquotes(str) - return '"' . a:str . '"' -endfunction - " Returns whether a path is absolute. function! s:isabspath(path) return a:path =~# '\v^(\w\:)?[/\\]' @@ -359,11 +354,7 @@ let l:hg_command = g:lawrencium_hg_executable . ' --repository ' . shellescape(s:stripslash(self.root_dir)) let l:hg_command = l:hg_command . ' ' . a:command for l:arg in l:arg_list - if stridx(l:arg, ' ') >= 0 - let l:hg_command = l:hg_command . ' "' . l:arg . '"' - else - let l:hg_command = l:hg_command . ' ' . l:arg - endif + let l:hg_command = l:hg_command . ' ' . shellescape(l:arg) endfor return l:hg_command endfunction @@ -672,7 +663,7 @@ if l:rev == '' call a:repo.ReadCommandOutput('cat', a:full_path) else - call a:repo.ReadCommandOutput('cat', '-r', s:addquotes(l:rev), a:full_path) + call a:repo.ReadCommandOutput('cat', '-r', l:rev, a:full_path) endif endfunction @@ -712,11 +703,11 @@ let l:rev1 = strpart(a:path_parts['value'], 0, l:commaidx) let l:rev2 = strpart(a:path_parts['value'], l:commaidx + 1) if l:rev1 == '-' - let l:diffargs = [ '-r', s:addquotes(l:rev2) ] + let l:diffargs = [ '-r', l:rev2 ] elseif l:rev2 == '-' - let l:diffargs = [ '-r', s:addquotes(l:rev1) ] + let l:diffargs = [ '-r', l:rev1 ] else - let l:diffargs = [ '-r', s:addquotes(l:rev1), '-r', s:addquotes(l:rev2) ] + let l:diffargs = [ '-r', l:rev1, '-r', l:rev2 ] endif elseif a:path_parts['value'] != '' let l:diffargs = [ '-c', a:path_parts['value'] ]