소스 검색

Fix target-dir with multiple slashes too

Jordi Boggiano 13 년 전
부모
커밋
8d7e5cdda5
2개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      src/Composer/Package/Package.php
  2. 3 0
      tests/Composer/Test/Package/CompletePackageTest.php

+ 1 - 1
src/Composer/Package/Package.php

@@ -118,7 +118,7 @@ class Package extends BasePackage
             return;
         }
 
-        return ltrim(preg_replace('{ (?:^|[\\\\/]) \.\.? (?:[\\\\/]|$) (?:\.\.? (?:[\\\\/]|$) )*}x', '/', $this->targetDir), '/');
+        return ltrim(preg_replace('{ (?:^|[\\\\/]+) \.\.? (?:[\\\\/]+|$) (?:\.\.? (?:[\\\\/]+|$) )*}x', '/', $this->targetDir), '/');
     }
 
     /**

+ 3 - 0
tests/Composer/Test/Package/CompletePackageTest.php

@@ -94,5 +94,8 @@ class CompletePackageTest extends TestCase
 
         $package->setTargetDir('/foo/..');
         $this->assertEquals('foo/', $package->getTargetDir());
+
+        $package->setTargetDir('/foo/..//bar');
+        $this->assertEquals('foo/bar', $package->getTargetDir());
     }
 }