From 05d56506dff48584febd62230b11748378dbc5b2 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 3 Aug 2019 16:14:01 -0400 Subject: [PATCH] Revert expand and s:spawn changes tempname() is affected by shellslash so expand() is useless. "/c" flag is required to exec a batchfile. --- plug.vim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plug.vim b/plug.vim index 218db8c4..debf137f 100644 --- a/plug.vim +++ b/plug.vim @@ -809,7 +809,7 @@ function! s:bang(cmd, ...) if s:is_win let batchfile = tempname().'.bat' call writefile(["@echo off\r", cmd . "\r"], batchfile) - let cmd = s:shellesc(expand(batchfile), &shell) + let cmd = s:shellesc(batchfile, &shell) endif let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%') execute "normal! :execute g:_plug_bang\\" @@ -1206,11 +1206,11 @@ function! s:spawn(name, cmd, opts) \ 'new': get(a:opts, 'new', 0) } let s:jobs[a:name] = job let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir) : a:cmd - let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd) if !empty(job.batchfile) call writefile(["@echo off\r", cmd . "\r"], job.batchfile) - let argv = s:vim8 ? 'cmd.exe '.s:shellesc(job.batchfile) : ['cmd.exe', job.batchfile] + let argv = s:shellesc(job.batchfile) endif + let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd) if s:nvim call extend(job, { @@ -1227,7 +1227,7 @@ function! s:spawn(name, cmd, opts) \ 'Invalid arguments (or job table is full)'] endif elseif s:vim8 - let jid = job_start(argv, { + let jid = job_start(s:is_win ? join(argv, ' ') : argv, { \ 'out_cb': function('s:job_cb', ['s:job_out_cb', job]), \ 'exit_cb': function('s:job_cb', ['s:job_exit_cb', job]), \ 'out_mode': 'raw' @@ -2036,7 +2036,7 @@ function! s:system(cmd, ...) if s:is_win let batchfile = tempname().'.bat' call writefile(["@echo off\r", cmd . "\r"], batchfile) - let cmd = s:shellesc(expand(batchfile), &shell) + let cmd = s:shellesc(batchfile, &shell) endif return system(cmd) finally @@ -2370,7 +2370,7 @@ function! s:preview_commit() if s:is_win let batchfile = tempname().'.bat' call writefile(["@echo off\r", cmd . "\r"], batchfile) - let cmd = s:shellesc(expand(batchfile), &shell) + let cmd = s:shellesc(batchfile, &shell) endif execute 'silent %!' cmd finally