changeset 127:96e4423e729e

Merge pull request #7 from GitHub.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 19 Feb 2016 15:39:56 -0800
parents bbb19d37c681 (diff) 47209552ec46 (current diff)
children 7ad578b151c1
files plugin/lawrencium.vim
diffstat 1 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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