1
0
Fork 0

Merge pull request #5846 from markingman/master

Fixing local file VCS URLs with encoded characters
pull/5886/head
Jordi Boggiano 2016-11-18 19:45:28 +01:00 committed by GitHub
commit de9f333ec6
1 changed files with 14 additions and 2 deletions

View File

@ -67,13 +67,25 @@ abstract class VcsDownloader implements DownloaderInterface, ChangeReportInterfa
while ($url = array_shift($urls)) { while ($url = array_shift($urls)) {
try { try {
if (Filesystem::isLocalPath($url)) { if (Filesystem::isLocalPath($url)) {
# realpath() below will not understand // realpath() below will not understand
# url that starts with "file://" // url that starts with "file://"
$needle = 'file://'; $needle = 'file://';
$isFileProtocol = false;
if (0 === strpos($url, $needle)) { if (0 === strpos($url, $needle)) {
$url = substr($url, strlen($needle)); $url = substr($url, strlen($needle));
$isFileProtocol = true;
} }
// realpath() below will not understand %20 spaces etc.
if (false !== strpos($url, '%')) {
$url = rawurldecode($url);
}
$url = realpath($url); $url = realpath($url);
if ($isFileProtocol) {
$url = $needle . $url;
}
} }
$this->doDownload($package, $path, $url); $this->doDownload($package, $path, $url);
break; break;