Browse Source

Fix target-dir with multiple slashes too

Jordi Boggiano 12 years ago
parent
commit
8d7e5cdda5

+ 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());
     }
 }