# HG changeset patch # User Ludovic Chabant # Date 1455925196 28800 # Node ID 96e4423e729e3845a30315f045c6229b4977900d # Parent bbb19d37c681e95dd1d97228ce2a65c268b9d163# Parent 47209552ec469329456ef44431d08b034f2d86cd Merge pull request #7 from GitHub. diff -r 47209552ec46 -r 96e4423e729e plugin/lawrencium.vim --- a/plugin/lawrencium.vim Wed Dec 02 22:45:12 2015 +0400 +++ b/plugin/lawrencium.vim Fri Feb 19 15:39:56 2016 -0800 @@ -351,20 +351,38 @@ if a:0 == 1 && type(a:1) == type([]) let l:arg_list = a:1 endif + let l:prev_shellslash = &shellslash + setlocal noshellslash 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 let l:hg_command = l:hg_command . ' ' . shellescape(l:arg) endfor + if l:prev_shellslash + setlocal shellslash + endif return l:hg_command endfunction " Runs a Mercurial command in the repo. function! s:HgRepo.RunCommand(command, ...) abort + let l:all_args = [1, a:command] + a:000 + return call(self['RunCommandEx'], l:all_args, self) +endfunction + +function! s:HgRepo.RunCommandEx(plain_mode, command, ...) abort + let l:prev_hgplain = $HGPLAIN + if a:plain_mode + let $HGPLAIN = 'true' + endif let l:all_args = [a:command] + a:000 let l:hg_command = call(self['GetCommand'], l:all_args, self) call s:trace("Running Mercurial command: " . l:hg_command) - return system(l:hg_command) + let l:cmd_out = system(l:hg_command) + if a:plain_mode + let $HGPLAIN = l:prev_hgplain + endif + return l:cmd_out endfunction " Runs a Mercurial command in the repo and reads its output into the current @@ -866,7 +884,7 @@ " to make auto-completed paths work magically. execute 'cd! ' . fnameescape(l:repo.root_dir) endif - let l:output = call(l:repo.RunCommand, a:000, l:repo) + let l:output = call(l:repo.RunCommandEx, [0] + a:000, l:repo) if g:lawrencium_auto_cd execute 'cd! -' endif