- adapt to rpm changes regarding cornercases where the release is missing
[platform/upstream/libsolv.git] / src / evr.c
index c8cc940..a209e65 100644 (file)
--- a/src/evr.c
+++ b/src/evr.c
@@ -225,9 +225,16 @@ pool_evrcmp_str(const Pool *pool, const char *evr1, const char *evr2, int mode)
     return 0;
   if (r1 && r2)
     {
-      if (s1 != ++r1 && s2 != ++r2)
+      if (mode != EVRCMP_MATCH || (s1 != ++r1 && s2 != ++r2))
         r = solv_vercmp(r1, s1, r2, s2);
     }
+  else if (mode == EVRCMP_MATCH_RELEASE)
+    {
+      if (!r1 && r2)
+       return -2;
+      if (r1 && !r2)
+       return 2;
+    }
   return r;
 }