aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Magorsch <arzano@gentoo.org>2020-06-09 00:40:59 +0000
committerMax Magorsch <arzano@gentoo.org>2020-06-09 00:40:59 +0000
commit922c38af0e0bf2d835ce09e60f598d66bf955028 (patch)
tree1a20a8126fcea06faf715e737bdb37fc42db2eea
parentBump the version to v0.2.3 (diff)
downloadsoko-922c38af0e0bf2d835ce09e60f598d66bf955028.tar.gz
soko-922c38af0e0bf2d835ce09e60f598d66bf955028.tar.bz2
soko-922c38af0e0bf2d835ce09e60f598d66bf955028.zip
Fix the version comparison according to the pms
Algorithm 3.5 (Version comparison logic for suffixes) of the pms has been correctly implemented now. Bug: https://bugs.gentoo.org/727468 Signed-off-by: Max Magorsch <arzano@gentoo.org>
-rw-r--r--pkg/models/version.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/pkg/models/version.go b/pkg/models/version.go
index e6077ad..904751e 100644
--- a/pkg/models/version.go
+++ b/pkg/models/version.go
@@ -57,8 +57,18 @@ func (v *Version) CompareTo(other Version) bool {
return getSuffixOrder(versionIdentifierA.Suffixes[i].Name) > getSuffixOrder(versionIdentifierB.Suffixes[i].Name)
}
}
- if len(versionIdentifierA.Suffixes) != len(versionIdentifierB.Suffixes) {
- return len(versionIdentifierA.Suffixes) > len(versionIdentifierB.Suffixes)
+ if len(versionIdentifierA.Suffixes) > len(versionIdentifierB.Suffixes) {
+ if versionIdentifierA.Suffixes[len(versionIdentifierB.Suffixes)].Name == "p" {
+ return true
+ } else {
+ return false
+ }
+ }else if len(versionIdentifierA.Suffixes) < len(versionIdentifierB.Suffixes) {
+ if versionIdentifierB.Suffixes[len(versionIdentifierA.Suffixes)].Name == "p" {
+ return false
+ } else {
+ return true
+ }
}
// compare the revision