mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 10:39:02 -04:00
Fix version comparisons in modulemanager so that "core 2.0" will match 2.0.1
This commit is contained in:
parent
3cf9935005
commit
e24ff3ffc6
@ -141,10 +141,9 @@ my %todo = %installed;
|
|||||||
sub ver_cmp {
|
sub ver_cmp {
|
||||||
($a,$b) = @_ if @_;
|
($a,$b) = @_ if @_;
|
||||||
|
|
||||||
# string versions first, git IDs
|
if ($a !~ /^[0-9.]+$/ or $b !~ /^[0-9.]+$/)
|
||||||
if ($a =~ /[a-z0-9]{40}/ or $b =~ /[a-z0-9]{40}/)
|
|
||||||
{
|
{
|
||||||
# it's a string version. compare them as such.
|
# not a valid version number, don't try to sort
|
||||||
return $a ne $b;
|
return $a ne $b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +151,7 @@ sub ver_cmp {
|
|||||||
my @a = split /\./, $a;
|
my @a = split /\./, $a;
|
||||||
my @b = split /\./, $b;
|
my @b = split /\./, $b;
|
||||||
push @a, 0 while $#a < $#b;
|
push @a, 0 while $#a < $#b;
|
||||||
push @b, 0 while $#b < $#a;
|
push @b, ($_[2] || 0) while $#b < $#a;
|
||||||
for my $i (0..$#a) {
|
for my $i (0..$#a) {
|
||||||
my $d = $a[$i] <=> $b[$i];
|
my $d = $a[$i] <=> $b[$i];
|
||||||
return $d if $d;
|
return $d if $d;
|
||||||
@ -163,13 +162,13 @@ sub ver_cmp {
|
|||||||
sub ver_in_range {
|
sub ver_in_range {
|
||||||
my($ver, $range) = @_;
|
my($ver, $range) = @_;
|
||||||
return 1 unless defined $range;
|
return 1 unless defined $range;
|
||||||
|
my($l,$h) = ($range, $range);
|
||||||
if ($range =~ /(.*)-(.*)/) {
|
if ($range =~ /(.*)-(.*)/) {
|
||||||
my($l,$h) = ($1,$2);
|
($l,$h) = ($1,$2);
|
||||||
return 0 if $l && ver_cmp($ver, $l) < 0;
|
|
||||||
return 0 if $h && ver_cmp($ver, $h) > 0;
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return !ver_cmp($ver, $range);
|
return 0 if $l && ver_cmp($ver, $l) < 0;
|
||||||
|
return 0 if $h && ver_cmp($ver, $h, 9999) > 0;
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub find_mod_in_range {
|
sub find_mod_in_range {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user