diff --git a/src/Composer/Package/Version/VersionParser.php b/src/Composer/Package/Version/VersionParser.php index 58bc0a2c9..f39e21d0f 100644 --- a/src/Composer/Package/Version/VersionParser.php +++ b/src/Composer/Package/Version/VersionParser.php @@ -276,8 +276,7 @@ class VersionParser // however, if a stability suffix is added to the constraint, then a >= match on the current version is // used instead if (preg_match('{^~(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.(\d+))?'.self::$modifierRegex.'?$}i', $constraint, $matches)) { - - // Work out which position in the version we are operating at + // Work out which position in the version we are operating at if (isset($matches[4]) && '' !== $matches[4]) { $position = 4; } elseif (isset($matches[3]) && '' !== $matches[3]) { @@ -298,11 +297,13 @@ class VersionParser $stabilitySuffix .= '-dev'; } - if(!$stabilitySuffix) $stabilitySuffix = "-dev"; + if (!$stabilitySuffix) { + $stabilitySuffix = "-dev"; + } $lowVersion = $this->manipulateVersionString($matches, $position, 0) . $stabilitySuffix; $lowerBound = new VersionConstraint('>=', $lowVersion); - // For upper bound, we increment the position of one more significance, + // For upper bound, we increment the position of one more significance, // but highPosition = 0 would be illegal $highPosition = max(1, $position - 1); $highVersion = $this->manipulateVersionString($matches, $highPosition, 1) . '-dev'; @@ -327,14 +328,14 @@ class VersionParser $lowVersion = $this->manipulateVersionString($matches, $position) . "-dev"; $highVersion = $this->manipulateVersionString($matches, $position, 1) . "-dev"; - if($lowVersion === "0.0.0.0-dev") { + if ($lowVersion === "0.0.0.0-dev") { return array(new VersionConstraint('<', $highVersion)); - } else { - return array( - new VersionConstraint('>=', $lowVersion), - new VersionConstraint('<', $highVersion), - ); } + + return array( + new VersionConstraint('>=', $lowVersion), + new VersionConstraint('<', $highVersion), + ); } // match operators constraints @@ -364,28 +365,30 @@ class VersionParser /** * Increment, decrement, or simply pad a version number. - * + * * Support function for {@link parseConstraint()} - * + * * @param array $matches Array with version parts in array indexes 1,2,3,4 * @param int $position 1,2,3,4 - which segment of the version to decrement * @param string $pad The string to pad version parts after $position * @return string The new version */ - private function manipulateVersionString($matches, $position, $increment = 0, $pad = '0') { - for($i = 4; $i>0; $i--) { - if($i > $position) { + private function manipulateVersionString($matches, $position, $increment = 0, $pad = '0') + { + for ($i = 4; $i > 0; $i--) { + if ($i > $position) { $matches[$i] = $pad; - - } else if(($i == $position) && $increment) { + } else if ($i == $position && $increment) { $matches[$i] += $increment; // If $matches[$i] was 0, carry the decrement - if($matches[$i] < 0) { + if ($matches[$i] < 0) { $matches[$i] = $pad; $position--; // Return null on a carry overflow - if($i == 1) return null; + if ($i == 1) { + return; + } } } } diff --git a/tests/Composer/Test/Package/Version/VersionParserTest.php b/tests/Composer/Test/Package/Version/VersionParserTest.php index 19fd9f16f..e16cdc10c 100644 --- a/tests/Composer/Test/Package/Version/VersionParserTest.php +++ b/tests/Composer/Test/Package/Version/VersionParserTest.php @@ -275,6 +275,7 @@ class VersionParserTest extends \PHPUnit_Framework_TestCase array('~1.2-b2', new VersionConstraint('>=', '1.2.0.0-beta2'), new VersionConstraint('<', '2.0.0.0-dev')), array('~1.2-BETA2', new VersionConstraint('>=', '1.2.0.0-beta2'), new VersionConstraint('<', '2.0.0.0-dev')), array('~1.2.2-dev', new VersionConstraint('>=', '1.2.2.0-dev'), new VersionConstraint('<', '1.3.0.0-dev')), + array('~1.2.2-stable', new VersionConstraint('>=', '1.2.2.0-stable'), new VersionConstraint('<', '1.3.0.0-dev')), ); }