* apt-pkg/deb/debversion.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Mon, 1 Apr 2013 11:19:43 +0000 (13:19 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Mon, 1 Apr 2013 11:19:43 +0000 (13:19 +0200)
  - add a string-equal shortcut for equal version comparisions

apt-pkg/deb/debversion.cc
debian/changelog

index a02699a..94d3578 100644 (file)
@@ -215,10 +215,19 @@ bool debVersioningSystem::CheckDep(const char *PkgVer,
       return true;
    if (PkgVer == 0 || PkgVer[0] == 0)
       return false;
-   
+   Op &= 0x0F;
+
+   size_t const lenPkgVer = strlen(PkgVer);
+   size_t const lenDepVer = strlen(DepVer);
+
+   // take a shortcut for equals which are string-equal as well
+   if (Op == pkgCache::Dep::Equals && lenPkgVer == lenDepVer &&
+        memcmp(PkgVer, DepVer, lenPkgVer) == 0)
+      return true;
+
    // Perform the actual comparision.
-   int Res = CmpVersion(PkgVer,DepVer);
-   switch (Op & 0x0F)
+   int const Res = DoCmpVersion(PkgVer, PkgVer + lenPkgVer, DepVer, DepVer + lenDepVer);
+   switch (Op)
    {
       case pkgCache::Dep::LessEq:
       if (Res <= 0)
index 7796f59..b0e6691 100644 (file)
@@ -8,6 +8,8 @@ apt (0.9.7.8~exp2+nmu1) UNRELEASED; urgency=low
     - handle language tags for descriptions are unique strings to be shared
     - factor version string creation out of NewDepends, so we can easily reuse
       version strings e.g. for implicit multi-arch dependencies
+  * apt-pkg/deb/debversion.cc:
+    - add a string-equal shortcut for equal version comparisions
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 10 Mar 2013 12:23:24 +0100