Skip to content

Commit

Permalink
fix(windows): can delete non-ascii filenames to trash (#323)
Browse files Browse the repository at this point in the history
  • Loading branch information
TheLeoP authored Mar 4, 2024
1 parent c437f3c commit 18dfd24
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 10 deletions.
13 changes: 5 additions & 8 deletions lua/oil/adapters/trash/windows/powershell-connection.lua
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,12 @@ end

---@param init_command? string
function PowershellConnection:_init(init_command)
-- 65001 is the UTF-8 codepage
-- powershell needs to be launched with the UTF-8 codepage to use it for both stdin and stdout
local jid = vim.fn.jobstart({
"powershell",
"-NoProfile",
"-NoLogo",
"-ExecutionPolicy",
"Bypass",
"-NoExit",
"-Command",
"-",
"cmd",
"/c",
'"chcp 65001 && powershell -NoProfile -NoLogo -ExecutionPolicy Bypass -NoExit -Command -"',
}, {
---@param data string[]
on_stdout = function(_, data)
Expand Down
2 changes: 0 additions & 2 deletions lua/oil/adapters/trash/windows/powershell-trash.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ local Powershell = require("oil.adapters.trash.windows.powershell-connection")

local M = {}

-- The first line configures Windows Powershell to use UTF-8 for input and output
-- 0xa is the constant for Recycle Bin. See https://learn.microsoft.com/en-us/windows/win32/api/shldisp/ne-shldisp-shellspecialfolderconstants
local list_entries_init = [[
$OutputEncoding = [Console]::InputEncoding = [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding
$shell = New-Object -ComObject 'Shell.Application'
$folder = $shell.NameSpace(0xa)
]]
Expand Down

0 comments on commit 18dfd24

Please sign in to comment.