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:
parent
ff97806e50
commit
849b76be90
1 changed files with 9 additions and 3 deletions
12
plug.vim
12
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)
|
||||
|
|
Loading…
Reference in a new issue