private function VersionParser::manipulateVersionString in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/composer/semver/src/VersionParser.php \Composer\Semver\VersionParser::manipulateVersionString()
Increment, decrement, or simply pad a version number.
Support function for {@link parseConstraint()}
Parameters
array $matches Array with version parts in array indexes 1,2,3,4:
int $position 1,2,3,4 - which segment of the version to increment/decrement:
int $increment:
string $pad The string to pad version parts after $position:
Return value
string The new version
1 call to VersionParser::manipulateVersionString()
- VersionParser::parseConstraint in vendor/
composer/ semver/ src/ VersionParser.php
File
- vendor/
composer/ semver/ src/ VersionParser.php, line 472
Class
- VersionParser
- Version parser.
Namespace
Composer\SemverCode
private function manipulateVersionString($matches, $position, $increment = 0, $pad = '0') {
for ($i = 4; $i > 0; --$i) {
if ($i > $position) {
$matches[$i] = $pad;
}
elseif ($i === $position && $increment) {
$matches[$i] += $increment;
// If $matches[$i] was 0, carry the decrement
if ($matches[$i] < 0) {
$matches[$i] = $pad;
--$position;
// Return null on a carry overflow
if ($i === 1) {
return;
}
}
}
}
return $matches[1] . '.' . $matches[2] . '.' . $matches[3] . '.' . $matches[4];
}