From dacb634bf8c74b83b4288ee09b6472fd836bb0d4 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Mon, 30 Sep 2019 19:59:17 -0400 Subject: [PATCH] Fix chcp parsing for the current codepage Relying on delimiters or token positions is fragile. Last value of 'chcp' output is always a number. --- plug.vim | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plug.vim b/plug.vim index bc3706c..2571fe3 100644 --- a/plug.vim +++ b/plug.vim @@ -353,9 +353,15 @@ if s:is_win " Copied from fzf function! s:wrap_cmds(cmds) - return map(['@echo off','setlocal enabledelayedexpansion','for /f "delims=: tokens=2" %%a in (''chcp'') do set origchcp=%%a','set origchcp=!origchcp: =!','chcp 65001 > nul'] + - \ (type(a:cmds) == type([]) ? a:cmds : [a:cmds]) + - \ ['chcp !origchcp! > nul','setlocal disabledelayedexpansion'],'v:val."\r"') + return map([ + \ '@echo off', + \ 'setlocal enabledelayedexpansion', + \ 'for /f "tokens=*" %%a in (''chcp'') do for %%b in (%%a) do set origchcp=%%b', + \ 'chcp 65001 > nul' + \ ] + \ + (type(a:cmds) == type([]) ? a:cmds : [a:cmds]) + \ + ['chcp !origchcp! > nul', 'endlocal'], + \ 'v:val."\r"') endfunction function! s:batchfile(cmd)