Bläddra i källkod

Escape batchfile path on Windows (#850)

Close #832
Jan Edmund Lazo 6 år sedan
förälder
incheckning
f1ad2d864a
1 ändrade filer med 4 tillägg och 4 borttagningar
  1. 4 4
      plug.vim

+ 4 - 4
plug.vim

@@ -811,7 +811,7 @@ function! s:bang(cmd, ...)
     if s:is_win
       let batchfile = tempname().'.bat'
       call writefile(["@echo off\r", cmd . "\r"], batchfile)
-      let cmd = batchfile
+      let cmd = s:shellesc(batchfile)
     endif
     let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%')
     execute "normal! :execute g:_plug_bang\<cr>\<cr>"
@@ -1210,7 +1210,7 @@ function! s:spawn(name, cmd, opts)
   let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir) : a:cmd
   if !empty(job.batchfile)
     call writefile(["@echo off\r", cmd . "\r"], job.batchfile)
-    let cmd = job.batchfile
+    let cmd = s:shellesc(job.batchfile)
   endif
   let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd)
 
@@ -2037,9 +2037,9 @@ function! s:system(cmd, ...)
     if s:is_win
       let batchfile = tempname().'.bat'
       call writefile(["@echo off\r", cmd . "\r"], batchfile)
-      let cmd = batchfile
+      let cmd = s:shellesc(batchfile)
     endif
-    return system(s:is_win ? '('.cmd.')' : cmd)
+    return system(cmd)
   finally
     let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd]
     if s:is_win