Previous attempt would cause 0.9.8aa == 0.9.8b
parent
f6f273c4b6
commit
0818a6ed54
|
@ -147,16 +147,22 @@ class PlatformRepository extends ArrayRepository
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'openssl':
|
case 'openssl':
|
||||||
$prettyVersion = preg_replace_callback('{^(?:OpenSSL\s*)?([0-9.]+)([a-z]+).*}', function ($match) {
|
$prettyVersion = preg_replace_callback('{^(?:OpenSSL\s*)?([0-9.]+)([a-z]*).*}', function ($match) {
|
||||||
if (empty($match[2])) {
|
if (empty($match[2])) {
|
||||||
return $match[1];
|
return $match[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenSSL versions add another letter when they reach Z.
|
// OpenSSL versions add another letter when they reach Z.
|
||||||
// e.g. OpenSSL 0.9.8zh 3 Dec 2015
|
// e.g. OpenSSL 0.9.8zh 3 Dec 2015
|
||||||
$patchVersion = array_sum(array_map(function ($letter) {
|
|
||||||
return ord($letter) - 96;
|
if (!preg_match('{^z*[a-z]$}', $match[2])) {
|
||||||
}, str_split($match[2])));
|
// 0.9.8abc is garbage
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = strlen($match[2]);
|
||||||
|
$patchVersion = ($len - 1) * 26; // All Z
|
||||||
|
$patchVersion += ord($match[2][$len - 1]) - 96;
|
||||||
|
|
||||||
return $match[1].'.'.$patchVersion;
|
return $match[1].'.'.$patchVersion;
|
||||||
}, OPENSSL_VERSION_TEXT);
|
}, OPENSSL_VERSION_TEXT);
|
||||||
|
|
Loading…
Reference in New Issue