aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/tmpls/comps
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-04-17 01:10:07 +0800
committer魏曹先生 <1992414357@qq.com>2026-04-17 01:10:07 +0800
commite17117e027cf8f0aa077c861b707651e040800a0 (patch)
tree0c0cc10932f59bb6bee6b3328a0f7a710eee88ca /mingling_core/tmpls/comps
parentcbb77a0569b6b79f51767180cb47cf50e68cf18c (diff)
Fix Windows UTF-16 argument handling in PowerShell completion
Diffstat (limited to 'mingling_core/tmpls/comps')
-rw-r--r--mingling_core/tmpls/comps/pwsh.ps19
1 files changed, 9 insertions, 0 deletions
diff --git a/mingling_core/tmpls/comps/pwsh.ps1 b/mingling_core/tmpls/comps/pwsh.ps1
index c9d9b97..eccb776 100644
--- a/mingling_core/tmpls/comps/pwsh.ps1
+++ b/mingling_core/tmpls/comps/pwsh.ps1
@@ -49,7 +49,16 @@ Register-ArgumentCompleter -Native -CommandName '<<<bin_name>>>' -ScriptBlock {
$args += ($element -replace '-', '^')
}
+ $originalEncoding = [Console]::OutputEncoding
+ $originalPSEncoding = $OutputEncoding
+ [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
+ $OutputEncoding = [System.Text.Encoding]::UTF8
+
$output = & <<<bin_name>>> __comp $args 2>&1
+
+ [Console]::OutputEncoding = $originalEncoding
+ $OutputEncoding = $originalPSEncoding
+
$output = $output -replace "`r`n", "`n" -replace "`r", "`n"
if (-not $output) {