From 2a3a40dd426e1db32196145adee8173b95b23df5 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 19 Mar 2014 00:43:37 +0900 Subject: [PATCH] Fix PlugStatus/PlugClean on Windows --- plug.vim | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plug.vim b/plug.vim index 7f68196..5eb25c3 100644 --- a/plug.vim +++ b/plug.vim @@ -363,7 +363,7 @@ function! s:update_serial(pull) let [valid, msg] = s:git_valid(spec, 0, 0) if valid let result = a:pull ? - \ system( + \ s:system( \ printf('git checkout -q %s 2>&1 && git pull origin %s 2>&1', \ spec.branch, spec.branch)) : 'Already installed' let error = a:pull ? v:shell_error != 0 : 0 @@ -377,7 +377,7 @@ function! s:update_serial(pull) endif execute 'cd '.base let d = shellescape(substitute(spec.dir, '[\/]\+$', '', '')) - let result = system( + let result = s:system( \ printf('git clone --recursive %s -b %s %s 2>&1', \ shellescape(spec.uri), shellescape(spec.branch), d)) let error = v:shell_error != 0 @@ -580,12 +580,16 @@ function! s:format_message(ok, name, message) endif endfunction +function! s:system(cmd) + return system(s:is_win ? '('.a:cmd.')' : a:cmd) +endfunction + function! s:git_valid(spec, check_branch, cd) let ret = 1 let msg = 'OK' if isdirectory(a:spec.dir) if a:cd | execute "cd " . a:spec.dir | endif - let result = split(system("git rev-parse --abbrev-ref HEAD 2>&1 && git config remote.origin.url"), '\n') + let result = split(s:system("git rev-parse --abbrev-ref HEAD 2>&1 && git config remote.origin.url"), '\n') let remote = result[-1] if v:shell_error != 0 let msg = join([remote, "PlugClean required."], "\n")