From 9f943e62019db44782da1e57088027144d1edfef Mon Sep 17 00:00:00 2001 From: WADA Takashi Date: Sun, 6 May 2018 00:52:57 +0900 Subject: [PATCH] Fix Windows Batch file format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `writefile()` always output LF without CR each lines. But batch file on windows needs CR and LF, at end of lines. And if the path of home directory contains non-ASCII characters like Japanese username (e.g. `C:\Users\太郎`), batch file without CR can't be executed correctly. --- plug.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plug.vim b/plug.vim index 9ebcf53..91be52e 100644 --- a/plug.vim +++ b/plug.vim @@ -1196,7 +1196,7 @@ function! s:spawn(name, cmd, opts) let s:jobs[a:name] = job 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', cmd], job.batchfile) + call writefile(["@echo off\r", cmd], job.batchfile) let cmd = job.batchfile endif let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd) @@ -2023,7 +2023,7 @@ function! s:system(cmd, ...) let cmd = a:0 > 0 ? s:with_cd(a:cmd, a:1) : a:cmd if s:is_win let batchfile = tempname().'.bat' - call writefile(['@echo off', cmd], batchfile) + call writefile(["@echo off\r", cmd], batchfile) let cmd = batchfile endif return system(s:is_win ? '('.cmd.')' : cmd) @@ -2357,7 +2357,7 @@ function! s:preview_commit() let cmd = 'cd '.s:shellesc(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha if s:is_win let batchfile = tempname().'.bat' - call writefile(['@echo off', cmd], batchfile) + call writefile(["@echo off\r", cmd], batchfile) let cmd = batchfile endif execute 'silent %!' cmd