From 6390140539caacfb6fd16729d3e6ba4341815b0e Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sat, 2 Nov 2019 14:35:21 +0900 Subject: [PATCH] [vim/windows] Use chcp only if sed is in PATH https://github.com/junegunn/vim-plug/pull/891 --- plugin/fzf.vim | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugin/fzf.vim b/plugin/fzf.vim index ac4c98fd..195bb8b2 100644 --- a/plugin/fzf.vim +++ b/plugin/fzf.vim @@ -50,14 +50,16 @@ if s:is_win " Use utf-8 for fzf.vim commands " Return array of shell commands for cmd.exe function! s:wrap_cmds(cmds) + let use_chcp = executable('sed') return map([ \ '@echo off', - \ 'setlocal enabledelayedexpansion', - \ 'for /f "tokens=*" %%a in (''chcp'') do for %%b in (%%a) do set origchcp=%%b', - \ 'chcp 65001 > nul' - \ ] + \ 'setlocal enabledelayedexpansion'] + \ + (use_chcp ? [ + \ 'for /f "usebackq" %%a in (`chcp ^| sed "s/[^0-9]//gp"`) do set origchcp=%%a', + \ 'chcp 65001 > nul'] : []) \ + (type(a:cmds) == type([]) ? a:cmds : [a:cmds]) - \ + ['chcp !origchcp! > nul', 'endlocal'], + \ + (use_chcp ? ['chcp !origchcp! > nul'] : []) + \ + ['endlocal'], \ 'v:val."\r"') endfunction else