From f68017d21e78b23fbf648d579edb6500ae7a6de8 Mon Sep 17 00:00:00 2001
From: Junegunn Choi <junegunn.c@gmail.com>
Date: Thu, 12 Dec 2019 12:29:14 +0900
Subject: [PATCH] [windows/vim] Encode batchfile in current codepage

Backport https://github.com/junegunn/vim-plug/pull/913
---
 plugin/fzf.vim | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index 7781ae5f..fb12d9b6 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -49,18 +49,14 @@ if s:is_win
 
   " Use utf-8 for fzf.vim commands
   " Return array of shell commands for cmd.exe
+  let s:codepage = libcallnr('kernel32.dll', 'GetACP', 0)
   function! s:wrap_cmds(cmds)
-    let use_chcp = executable('sed')
     return map([
       \ '@echo off',
       \ '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])
-    \ + (use_chcp ? ['chcp !origchcp! > nul'] : [])
     \ + ['endlocal'],
-    \ 'v:val."\r"')
+    \ printf('iconv(v:val."\r", "%s", "cp%d")', &encoding, s:codepage))
   endfunction
 else
   let s:term_marker = ";#FZF"
-- 
GitLab