]> git.saurik.com Git - apt.git/commitdiff
add a simple method to VerIterator to check if two Versions are similar
authorDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 16 Jun 2010 15:19:21 +0000 (17:19 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 16 Jun 2010 15:19:21 +0000 (17:19 +0200)
apt-pkg/cacheiterators.h

index f0b40dbb549627c16d85ef261a7ae4c2a9889ad3..51bf6819e1476296ff927b860fe4fc3f050c7854 100644 (file)
@@ -30,6 +30,8 @@
 #ifndef PKGLIB_CACHEITERATORS_H
 #define PKGLIB_CACHEITERATORS_H
 #include<iterator>
+
+#include<string.h>
 // abstract Iterator template                                          /*{{{*/
 /* This template provides the very basic iterator methods we
    need to have for doing some walk-over-the-cache magic */
@@ -183,6 +185,13 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> {
 
        // Comparison
        int CompareVer(const VerIterator &B) const;
+       /** \brief compares two version and returns if they are similar
+
+           This method should be used to identify if two pseudo versions are
+           refering to the same "real" version */
+       inline bool SimilarVer(const VerIterator &B) const {
+               return (B.end() == false && S->Hash == B->Hash && strcmp(VerStr(), B.VerStr()) == 0);
+       };
 
        // Accessors
        inline const char *VerStr() const {return S->VerStr == 0?0:Owner->StrP + S->VerStr;};