From 5c201687e562413508d27353637c78bf4791706c Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 18 Aug 2021 11:55:51 +0200 Subject: [PATCH] Fix 7zip issues on windows when mixing forward and backslashes, fixes #10058 --- src/Composer/Downloader/ZipDownloader.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Composer/Downloader/ZipDownloader.php b/src/Composer/Downloader/ZipDownloader.php index 5472ffe84..8049db9f4 100644 --- a/src/Composer/Downloader/ZipDownloader.php +++ b/src/Composer/Downloader/ZipDownloader.php @@ -115,6 +115,12 @@ class ZipDownloader extends ArchiveDownloader $commandSpec = reset(self::$unzipCommands); $command = sprintf($commandSpec[1], ProcessExecutor::escape($file), ProcessExecutor::escape($path)); + // normalize separators to backslashes to avoid problems with 7-zip on windows + // see https://github.com/composer/composer/issues/10058 + if (Platform::isWindows()) { + $command = sprintf($commandSpec[1], ProcessExecutor::escape(strtr($file, '/', '\\')), ProcessExecutor::escape(strtr($path, '/', '\\'))); + } + $executable = $commandSpec[0]; $self = $this;