diff --git a/launcher/mpv.ts b/launcher/mpv.ts index 781cf05b..1d7cfe9c 100644 --- a/launcher/mpv.ts +++ b/launcher/mpv.ts @@ -705,7 +705,9 @@ export async function startMpv( mpvArgs.push(`--input-ipc-server=${socketPath}`); mpvArgs.push(target); - const mpvTarget = resolveCommandInvocation('mpv', mpvArgs); + const mpvTarget = resolveCommandInvocation('mpv', mpvArgs, { + normalizeWindowsShellArgs: false, + }); state.mpvProc = spawn(mpvTarget.command, mpvTarget.args, { stdio: 'inherit' }); } @@ -1147,7 +1149,9 @@ export function launchMpvIdleDetached( ); mpvArgs.push(`--log-file=${getMpvLogPath()}`); mpvArgs.push(`--input-ipc-server=${socketPath}`); - const mpvTarget = resolveCommandInvocation('mpv', mpvArgs); + const mpvTarget = resolveCommandInvocation('mpv', mpvArgs, { + normalizeWindowsShellArgs: false, + }); const proc = spawn(mpvTarget.command, mpvTarget.args, { stdio: 'ignore', detached: true, diff --git a/launcher/util.ts b/launcher/util.ts index 1cc0c46c..4a5c26b0 100644 --- a/launcher/util.ts +++ b/launcher/util.ts @@ -244,13 +244,19 @@ export function inferWhisperLanguage(langCodes: string[], fallback: string): str return fallback; } +export interface CommandInvocationOptions { + normalizeWindowsShellArgs?: boolean; +} + export function resolveCommandInvocation( executable: string, args: string[], + options: CommandInvocationOptions = {}, ): { command: string; args: string[] } { if (process.platform !== 'win32') { return { command: executable, args }; } + const { normalizeWindowsShellArgs = true } = options; const resolvedExecutable = resolveExecutablePath(executable) ?? executable; const extension = path.extname(resolvedExecutable).toLowerCase(); @@ -267,7 +273,9 @@ export function resolveCommandInvocation( command: bashTarget.command, args: [ normalizeWindowsShellArg(resolvedExecutable, bashTarget.flavor), - ...args.map((arg) => normalizeWindowsShellArg(arg, bashTarget.flavor)), + ...args.map((arg) => + normalizeWindowsShellArgs ? normalizeWindowsShellArg(arg, bashTarget.flavor) : arg, + ), ], }; } @@ -280,7 +288,9 @@ export function resolveCommandInvocation( command: bashTarget.command, args: [ normalizeWindowsShellArg(resolvedExecutable, bashTarget.flavor), - ...args.map((arg) => normalizeWindowsShellArg(arg, bashTarget.flavor)), + ...args.map((arg) => + normalizeWindowsShellArgs ? normalizeWindowsShellArg(arg, bashTarget.flavor) : arg, + ), ], }; }