Fix chcp parsing for the current codepage (#888)

Relying on delimiters or token positions is fragile.
Last value of 'chcp' output is always a number.
This commit is contained in:
Jan Edmund Lazo 2019-10-03 21:19:11 -04:00 committed by GitHub
parent ff97806e50
commit 849b76be90
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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)